在Python的圈子裏常流行一句話:"動態一時爽,重構火葬場",咱們知道Python寫起來很方便,但在重構或者對某部分代碼修改時, 可能會形成"牽一髮而動全身",因此對於Python項目,特別是大型項目來講單元測試來保證代碼質量是很是有必要的。函數
單元測試(Unit Testing)單元測試
1. 針對程序模塊進行正確性檢驗測試
2. 一個函數、一個類進行驗證spa
3. 自底向上保證程序的正確性3d
單元測試的目的:code
1. 保證代碼邏輯的正確性blog
2. 使得代碼易測,高類聚、低耦合get
3. 迴歸測試放在改一處整個服務不可用的狀況it
單元測試通常須要覆蓋正常值、異常值和邊界值,示例以下:class
bin.py
1 def binary_search(b_list, target): 2 """
3 二分查找 4 :param b_list: 5 :param target: 6 :return: 7 """
8 b_list = sorted(b_list) 9 left, right = 0, len(b_list) - 1
10 while left <= right: 11 mid = (left + right) // 2
12 if b_list[mid] > target: 13 right = mid - 1
14 elif b_list[mid] < target: 15 left = mid + 1
16 else: 17 return mid 18 return None 19
20
21 def test(): 22 # 正常值
23 assert binary_search([3, 5, 7, 8, 9], 5) == 1
24
25 # 邊界值
26 assert binary_search([3, 5, 7, 8, 9], 3) == 0 27 assert binary_search([3, 5, 7, 8, 9], 9) == 4
28
29 # 異常值
30 assert binary_search([3, 5, 7, 8, 9], 0) is None 31 assert binary_search([], 3) is None
運行 pytest bin.py,若是測試用例所有經過則: