《Python編程從入門到實踐》第十一章 測試代碼 學習筆記2、測試類

1、unittest Module中的斷言方法

assertEqual(a,b)			#覈實a==b
assertNotEqual(a,b)			#覈實a!=b
assertTrue(x)				#覈實x爲True
assertFalse(x)				#覈實x爲False
assertIn(item,list)			#覈實item在list中
assertNotIn(item,list)		#覈實item不在list中

2、unittest.TestCase類中包含方法setUp(),若在TestCase類中包含了方法setUp(),Python將先運行它,再運行各個以test_打頭的方法。這樣,在哪個測試方法中都可使用方法setUp()中創建的對象了。
3、運行測試用例時,每完成一個單元測試,Python都打印一個字符:測試通過打印一個句點;測試引發錯誤打印一個E;測試導致斷言失敗打印一個F。

這就是運行測試用例時,在書的第一行看到的句點和字符數量各不相同的原因。如果測試用例包含很多單元測試,需要運行很長時間,就可通過觀察這些結果來獲悉有多少測試通過了。

練習

在這裏插入圖片描述

class Employee():
	"""收集僱員姓名和年薪的類"""
	def __init__(self,last_name,first_name,annual_salary):
		self.last_name=last_name
		self.first_name=first_name
		self.annual_salary=annual_salary
	def give_raise(self,up=5000):
		self.annual_salary+=up

在這裏插入圖片描述

import unittest
from salary import Employee


class TestEmployee(unittest.TestCase):
	def setUp(self):
		self.annual_salary=100000
		self.last_name='zh'
		self.first_name='jw'
		self.employee=Employee(self.last_name,
							self.first_name,
							self.annual_salary)
	def test_give_default_raise(self):
		self.employee.give_raise(0)
		self.assertEqual(self.annual_salary,self.employee.annual_salary)
	def test_give_custom_raise(self):
		self.employee.give_raise()
		self.assertEqual(self.annual_salary+5000,self.employee.annual_salary)
unittest.main()

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章