概述
在編寫自動化測試時,了解如何組織和管理測試用例是至關重要的。Pytest 提供了靈活的方式來定義測試函數和測試類,并支持多層次的設置(setup)和清理(teardown)機制,幫助你更高效地進行代碼驗證。本文將詳細介紹 測試函數 和 測試類 的概念、定義、注意點以及實際操作示例,助你快速掌握這些基礎知識。
什么是測試函數?
測試函數 是最基本的測試單元,在 Pytest 中通過以 test_
開頭的函數名來標識。每個測試函數都是一個獨立的測試案例,用于驗證特定的功能或行為是否符合預期。
示例:簡單的測試函數
假設我們有一個加法函數 add
,我們需要編寫幾個測試函數來驗證其正確性:
# utils/common.py
def add(a, b):return a + b
對應的測試文件如下:
# tests/test_sample.py
from utils.common import adddef test_add_positive_numbers():assert add(2, 3) == 5def test_add_negative_numbers():assert add(-1, 1) == 0def test_add_zero():assert add(0, 0) == 0
注意事項
- 每個測試函數必須以
test_
開頭,否則 Pytest 將不會識別它們。 - 測試函數應當盡可能獨立且不依賴其他測試的狀態。
- 使用明確的命名有助于提高代碼的可讀性和維護性。
什么是測試類?
當你的測試用例變得復雜或者需要共享某些數據和方法時,可以使用 測試類 來組織測試函數。測試類是一個包含多個測試函數的類,通常也命名為以 Test
開頭,并且類內部的方法名應以 test_
開頭。
示例:簡單的測試類
繼續上面的例子,如果我們希望為一組相關的測試提供一些共享的初始化邏輯,可以使用測試類:
# tests/test_sample.py
import pytest
from utils.common import addclass TestAddFunction:@classmethoddef setup_class(cls):""" 在所有測試之前運行 """print("Setup class")@classmethoddef teardown_class(cls):