11-3 雇員:編寫一個名為Employee的類,其方法__init__() 接受名、姓和年薪,並將它們都存儲在屬性中。編寫一個名為give_raise()的方法,它預設將年薪增加5000美元,但也能夠接受其他的年薪增加量。 為Employee編寫一個測試用例,其包含兩個測試方法:test_give ...
11-3 雇員:編寫一個名為Employee的類,其方法__init__() 接受名、姓和年薪,並將它們都存儲在屬性中。編寫一個名為give_raise()的方法,它預設將年薪增加5000美元,但也能夠接受其他的年薪增加量。
為Employee編寫一個測試用例,其包含兩個測試方法:test_give_default_raise()和test_give_custom_raise()。使用方法serUp(),以免再每個測試方法中都創建新的雇員實例,確認兩個測試都通過了。
employee_info.py
class Employee: """雇員信息""" def __init__(self, first, last, year_salary): """屬性""" self.first_name = first self.last_name = last self.year_salary = year_salary def give_raise(self, add_year_salary=5000): """年薪增加量""" self.year_salary = self.year_salary + add_year_salary return self.year_salary
test_employee_info.py
import unittest from employee_info import Employee class TestEmployee(unittest.TestCase): """針對Employee類的測試""" def setUp(self): """ 創建雇員實例供測試方法使用 """ self.employee = Employee('bob', 'li', 0) def test_give_default_raise(self): """測試預設年薪加量""" self.default_raise = self.employee.give_raise() self.assertEqual(5000, self.default_raise) def test_give_custom_raise(self): """測試其他的年薪增加量""" self.add_raise = 8000 self.custom_raise = self.employee.give_raise(self.add_raise) self.assertEqual(self.add_raise, self.custom_raise) if __name__ == "__main__": unittest.main()
運行測試用例test_employee_info.py,確認測試通過。