(学习记录)《Python编程从入门到实践》11-3

文章描述了一个Employee类,用于模拟员工,包含初始化方法和增加年薪方法。同时,文章提供了测试用例,包括默认和定制年薪增加的测试,确保功能正常。
摘要由CSDN通过智能技术生成

11-3 雇员:编写一个名为 Employee 的类,其方法__init__()接受名、姓和年薪,并将它们都存储在属性中。编写一个名为 give_raise() 的方法,它默认将年薪增加 5000美元,但也能够接受其他的年薪增加量。

        为 Employee 编写一个测试用例,其中包含两个测试方法:test_give_default_raise()和 test_give_custom_raise()。使用方法 setUp(),以免在每个测试方法中都创建新的雇员实例。运行这个测试用例,确认两个测试都通过了。

employee.py

class Employee():
	"""模拟雇员"""
	
	def __init__(self, first, last, annual_salary):
		"""初始化雇员的属性"""
		self.first_name = first
		self.last_name = last
		self.anuual_salary = annual_salary
		
	def give_raise(self, increament=5000):
		"""给雇员增加年薪,默认为5000美元,也可接受其他数值"""
		self.anuual_salary += increament
		
		

test_ employee.py

"""编写两个方法,进行两次测试"""

import unittest
from employee import Employee


class TestEmployee(unittest.TestCase):
	"""针对Employee类中的方法give_raise进行测试"""
	
	def setUp(self):
		"""
		创建一个雇员实例供测试使用
		"""
		self.my_employee = Employee('John', 'Smith', 50000)
		
	
	def test_give_default_salary(self):
		"""测试给雇员增加默认数额的年薪"""
		self.my_employee.give_raise()
		self.assertEqual(self.my_employee.anuual_salary,55000)
		
	def test_give_custom_salary(self):
		"""测试给雇员增加指定数额的年薪"""
		self.my_employee.give_raise(3000)
		self.assertEqual(self.my_employee.anuual_salary,53000)
		
unittest.main()

两个测试均通过

运行测试用例时,两个测试用例总是对"my_employee"这个名字进行报错,将其错认为 self的属性。后来去 setUp()中复制"my_employee",用粘贴替换掉其他所有地方的"my_employee",才解决了。估计是字体不同的问题?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值