Python学习笔记之unittest测试类
11-3 雇员:编写一个名为Employee 的类,其方法__init__()接受名、姓和年薪,并将它们都存储在属性中。编写一个名为give_raise()的方法,它默认将年薪增加5000美元,但也能够接受其他的年薪增加量。
为Employee 编写一个测试用例,其中包含两个测试方法:test_give_default_raise()和test_give_custom_raise()。使用方法setUp(),以免在每个测试方法中都创建新的雇员实例。运行这个测试用例,确认两个测试都通过了。
employee.py
1 class Employee(): 2 3 def __init__(self, first_name, last_name, annual_salary): 4 self.first_name = first_name 5 self.last_name = last_name 6 self.annual_salary = annual_salary 7 8 def give_raise(self, annual_salary=5000): 9 self.annual_salary += annual_salary
test_employee.py
1 import unittest 2 from employee import Employee 3 4 class TestEmployee(unittest.TestCase): 5 6 def setUp(self): 7 self.eric = Employee('eric', 'wong', 60000) 8 9 def test_give_default_raise(self): 10 self.eric.give_raise() 11 self.assertEqual(self.eric.annual_salary, 65000) 12 13 def test_give_custom_raise(self): 14 self.eric.give_raise(8000) 15 self.assertEqual(self.eric.annual_salary, 68000) 16 17 unittest.main()
在Employee类中,只有一个give_raise一个增加年薪的方法,所以在测试类的时候,只针对这个方法来测试即可
在TestEmployee类中,有一个setUp的方法,用来创建类的实例对象,供下面两个test方法使用,这样在运行test_give_default_raise()和test_give_custom_raise()的时候,直接调用setUp创建的对象即可,不用再自行创建