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创建的对象即可,不用再自行创建

posted @ 2019-11-02 16:03  雨夜Rainight  阅读(541)  评论(0编辑  收藏  举报