Python單元測試

2022-01-09 23:26:51 字數 1369 閱讀 7493

在python的圈子裡常流行一句話:"動態一時爽,重構火葬場",我們知道python寫起來很方便,但在重構或者對某部分**修改時,可能會造成"牽一髮而動全身",所以對於python專案,特別是大型專案來說單元測試來保證**質量是非常有必要的。

單元測試(unit testing)

1. 針對程式模組進行正確性檢驗

2. 乙個函式、乙個類進行驗證

3. 自底向上保證程式的正確性

單元測試的目的:

1. 保證**邏輯的正確性

2. 使得**易測,高類聚、低耦合

3. 回歸測試放在改一處整個服務不可用的情況

單元測試一般需要覆蓋正常值、異常值和邊界值,示例如下:

bin.py

1

defbinary_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

10while left <=right:

11 mid = (left + right) // 2

12if b_list[mid] >target:

13 right = mid - 1

14elif b_list[mid]

15 left = mid + 1

16else:17

return

mid18

return

none

1920

21def

test():22#

正常值23

assert binary_search([3, 5, 7, 8, 9], 5) == 1

2425

#邊界值

26assert binary_search([3, 5, 7, 8, 9], 3) ==0

27assert binary_search([3, 5, 7, 8, 9], 9) == 4

2829

#異常值

30assert binary_search([3, 5, 7, 8, 9], 0) is

none

31assert binary_search(, 3) is none

執行 pytest bin.py,如果測試用例全部通過則:

Python 單元測試

一 假設我們編寫了一段程式,主要功能是完成阿拉伯數字和羅馬數字之間的轉換 在羅馬數字中,利用7個字母進行重複或者組合來表達各式各樣的數字 i 1 v 5 x 10 l 50 c 100 d 500 m 1000 還有一些關於構造羅馬數字的規則。此程式的框架如下 其中,class romanerror...

python 單元測試

assertequal a,b assertnotequal a,b 斷言值是否相等 assertis a,b assertisnot a,b 斷言是否同一物件 記憶體位址一樣 assertlistequal list1,list2 assertitemnotequal list1,list2 斷言...

Python單元測試

本文章整理自 使用python3.6編寫乙個單元測試demo,例如 對學生student類編寫乙個簡單的單元測試。1 編寫student類 usr bin env python3 coding utf 8 class student object def init self,name,score s...