Python编程:从入门到实践 11.3动手试一试
最近新学python,也是懵懵懂懂,跌跌撞撞,但运行成功的时候很开心,想和大家分享,不一定对,毕竟还是菜鸟嘻嘻?
11-3 雇员 :
编写一个名为Employee 的类,其方法__init__() 接受名、姓和年薪,并将它们都存储在属性中。编写一个名为give_raise() 的方法,它默认将年薪增加5000美元,但也能够接受其他的年薪增加量。为Employee 编写一个测试用例,其中包含两个测试方法:test_give_default_raise() 和test_give_custom_raise() 。使用方法setUp() ,以免在 每个测试方法中都创建新的雇员实例。运行这个测试用例,确认两个测试都通过了。
class Employee():
"""编写一个名为Employee 的类,其方法__init__() 接受名、姓和年薪,并将它们都存储在属性中。编写一个名为give_raise() 的方法,它默认将年薪增加5000美元,但也能够接受其他的年薪增加量。"""
def __init__(self,first_name,last_name,annual_salary):
self.first_name=first_name
self.last_name=last_name
self.annual_salary=int(annual_salary)
def give_raise(self,add=''):
if add:
self.annual_salary+=add
else:
self.annual_salary+=5000
return self.annual_salary
测试模块:
"""为Employee 编写一个测试用例,其中包含两个测试方法:test_give_default_raise()
和test_give_custom_raise() 。使用方法setUp() ,以免在每个测试方法中都创建新的雇员实例。运行这个测试用例,确认两个测试都通过了。"""
import unittest
from Employee import Employee
class TestRaiseSalary(unittest.TestCase):
def setUp(self):
self.Anne_raise_salary=Employee('Anne','Green','5000')
def test_give_default_raise(self):
self.assertEqual(self.Anne_raise_salary.give_raise(),10000)
def test_give_custom_raise(self):
self.assertEqual(self.Anne_raise_salary.give_raise(6000),11000)
unittest.main()
运行结果:
..
----------------------------------------------------------------------
Ran 2 tests in 0.044s
OK