在Python中,最常用的單元測試框架之一是unittest,它包含在標準庫中。它提供了一套豐富的工具來創建和運行測試以及報告結果。
單元測試架構的主要特點
測試案例:測試案例是透過子類化unittest.TestCase來創建的。類別中以 test_ 開頭的每個方法都被視為一個測試。
Assertions:框架提供了多種斷言方法來檢查預期結果,如assertEqual、assertTrue、assertFalse等
測試運行程序:該框架包括一個運行測試並報告結果的測試運行程序。
單元測試的基本結構
導入unittest模組:先導入unittest庫。
建立測試案例:定義一個繼承自unittest.TestCase的類別。
定義測試方法:每個方法應以 test_ 開頭並包含斷言以檢查預期行為。
執行測試:如果直接執行腳本,請使用unittest.main()來執行測試。
簡單範例
這是一個簡單的範例,示範如何使用單元測試框架來測試簡單的函數。
待測試功能
首先,讓我們建立一個簡單的函數來測試:
def add(a, b):
返回 b
def 減(a, b):
返回 a - b
函數的單元測試
現在,我們將為加法和減法函數建立一個單元測試:
導入單元測試
from math_functions import add, minus # 導入待測試函數
類別 TestMathFunctions(unittest.TestCase):
def test_add(self): self.assertEqual(add(2, 3), 5) # Test case: 2 3 = 5 self.assertEqual(add(-1, 1), 0) # Test case: -1 1 = 0 self.assertEqual(add(0, 0), 0) # Test case: 0 0 = 0 def test_subtract(self): self.assertEqual(subtract(5, 3), 2) # Test case: 5 - 3 = 2 self.assertEqual(subtract(-1, -1), 0) # Test case: -1 - (-1) = 0 self.assertEqual(subtract(0, 5), -5) # Test case: 0 - 5 = -5
if 名稱 == 'main':
單元測試.main()
單元測試說明
import unittest:導入unittest模組。
from math_functions import add、subtract:導入我們要測試的函數。
class TestMathFunctions(unittest.TestCase):定義一個繼承自unittest.TestCase的測試案例類別。
每個以test_開頭的方法代表一個單獨的測試。
在每個測試方法中,self.assertEqual() 檢查函數的輸出是否與預期值相符。
if name == 'main': unittest.main(): 此行允許腳本在直接執行時執行測試。
運行測試
要執行測試,只需執行 test_math_functions.py 腳本。您可以從命令列執行此操作:
python test_math_functions.py
輸出
如果所有測試都通過,您將看到類似以下的輸出:
在 0.001 秒內執行 2 次測試
好的
這顯示test_add和test_subtract方法都成功通過。如果任何斷言失敗,unittest 將報告失敗,顯示哪個測試失敗以及原因。
結論
Python 中的單元測試框架提供了一種簡單有效的方法來建立和運行單元測試。透過為您的函數編寫測試,您可以確保它們按預期運行並在整個開發過程中保持較高的程式碼品質。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3