《Python编程:从入门到实践》学习打卡17-测试代码(下)
2020-07-18 04:48
555 查看
类的测试
基本断言方法
方法 | 作用 |
---|---|
assertEqual(a,b) | 核实a,b相等 |
assertNotEqual(a,b) | 核实a,b不相等 |
assertTrue(x) | 核实x为真 |
assertFalse(x) | 核实x为假 |
assertIn(item,list) | 核实item在list中 |
assertNotIn(item,list) | 核实tem不在list中 |
类测试的基本思想
对类中每个可能出现的情况进行一次测试,这种方法过于繁琐,需要一直创建实例
class non_survey(): """创建一个需要测试的类,存放在survey.py""" def __init__(self,question): self.question = question self.responses = [] def show_question(self): print(self.question) def store_response(self,new_response): self.responses.append(new_response) def show_result(self): for response in self.responses: print('- ' + response)
import unittest from survey import non_survey class TestSurveyCase(unittest.TestCase): def test_store_single_question(self): """测试单输入情况""" question = 'what is your first language first lesrued?' my_survey = non_survey(question) my_survey.store_response('english') self.assertIn('english',my_survey.responses) def test_store_three_question(self): """测试三输入情况""" question = 'what is your first language first learned?' my_survey = non_survey(question) response = ['english','spain','japan'] my_survey.store_response(response) self.assertIn(response,my_survey.responses) unittest.main()
方法setUp()
运用此方法可以在开头创建一个实例,此后的测试可以直接拿来用,避免重复创建实例,注意此处up中的u一定是大写的!
mport unittest from survey import non_survey class TestSurveyCase(unittest.TestCase): def setUp(self): question = 'what is your first language learned' self.my_survey = non_survey(question) self.responses = ['english','france','spain'] def test_store_single_question(self): self.my_survey.store_response(self.responses[0]) self.assertIn(self.responses[0],self.my_survey.responses) def test_store_three_question(self): for response in self.responses: self.my_survey.store_response(response) for response in self.responses: self.assertIn(response,self.my_survey.responses) unittest.main()
课后习题
11-3雇员
class Employee(): """创建一个雇佣类,存放在employee.py中""" def __init__(self,first_name,last_name,salary = 5000): self.first_name = first_name self.last_name = last_name self.salary = salary def give_raise(self,add): if add: self.salary += add else: self.salary += 500 return self.salary def show(self): print(self.first_name + ' ' + self.last_name + ' ' + str(self.salary))
import unittest from employee import Employee class TestEmployeeCsae(unittest.TestCase): def setUp(self): """定义setUp方法,创建实例""" self.my_employee = Employee('link','fase') def test_give_default_raise(self): """测试默认情况下的工资""" raising = self.my_employee.salary self.assertEqual(5000,raising) def test_give_custom_raise(self): """测试设置增加值的工资""" raising_1 = self.my_employee.give_raise(700) self.assertEqual(5700,raising_1) unittest.main()
相关文章推荐
- 【day 9】python编程:从入门到实践学习笔记-测试代码(末附练习答案代码)
- 【Python编程:从入门到实践】第十一章:测试代码
- 【day 4】python编程:从入门到实践学习笔记-字典(末附练习答案代码)
- 《Python编程:从入门到实践》学习打卡18-数据可视化(一)
- 【day 8】python编程:从入门到实践学习笔记-文件和异常(末附答案代码)
- 【day 17】python编程:从入门到实践学习笔记-基于Django框架的Web开发-设计样式和部署(一)
- Python学习 第一天任务 (四:【基于Python编程从入门到实践】动手试一试)
- 《python编程从入门到实践》读书笔记与代码实现(二)——数据可视化(3)
- 【day 2】python编程:从入门到实践学习笔记-列表以及其操作
- 《Python编程从入门到实践》学习笔记1
- 关于《python编程从入门到实践》P332收盘价均值小结中绘图代码函数报错问题
- Python学习之路——《python编程,从入门到实践》第二章习题
- 【day 10】python编程:从入门到实践学习笔记- 基于Django框架的Web开发-Django入门(一)
- 【day 14】python编程:从入门到实践学习笔记-基于Django框架的Web开发-用户账户(一)
- python网络爬虫从入门到实践,第四章第二节测试代码
- 对比《Python编程无师自通专业程序员的养成》PDF代码+《Python编程从入门到实践》PDF代码+《Python可以这样学》PDF代码分析...
- 《Python编程:从入门到实践》学习笔记(4:while 循环与函数)
- Python编程:从入门到实践--关于测试代码部分的练习
- python 编程从入门到实践11章 测试代码 11.2测试类11.2.2 修改
- 【day 5】python编程:从入门到实践学习笔记-用户输入和while循环(末答案)