一、Unittest 單元測試框架,可用於自動化測試用力組織,執行,輸出結果 二、Unittest構成 1. Test Case 2. Test Suite 3. Test Fixture 4. Test Runner (圖片來源於網路) Test Case 一個測試用例是一個獨立的測試單元。它檢查 ...
一、Unittest
單元測試框架,可用於自動化測試用力組織,執行,輸出結果
二、Unittest構成
- Test Case
- Test Suite
- Test Fixture
- Test Runner
(圖片來源於網路)
Test Case
一個測試用例是一個獨立的測試單元。它檢查輸入特定的數據時的響應。 unittest 提供一個基類: TestCase ,用於新建測試用例。
一個完整的用例需要遵循3A原則
- Arrange: 初始化測試對象或者準備測試數據
- Act : 調用被測方法
- Assert: 斷言(預期結果與實際結果的比較)
test suite
用於組織測試用例,測試用例的集合
Test Fixture
測試腳手架 test fixture 表示為了開展一項或多項測試所需要進行的準備工作,以及所有相關的清理操作。
- 定義單個或者多個測試所需的環境準備(setUp),以及環境清理(tearDown)。
- 例:連接資料庫,或者創建Selenium WebDriver driver實例
test runner
測試運行器 是一個用於執行和輸出測試結果的組件。這個運行器可能使用圖形介面、文本介面,或返回一個特定的值表示運行測試的結果
demo.py
import unittest
class TestDemo(unittest.TestCase):
# 初始化測試對象或者準備測試數據
def setUp(self):
pass
def tearDown(self):
pass
def add(self, a, b):
return a + b
# 調用被測方法
def test_case_one(self):
ret = self.add(1, 2)
# 斷言
self.assertEqual(3, ret)
def test_case_two(self):
ret = self.add(1, 2)
self.assertEqual(1, ret)
if __name__ == '__main__':
unittest.main(verbosity=2)
Uittest使用要點:
- 被測方法名需以test開頭,否則不被識別
- verbosity參數預設為1,有3個參數可選(0,1,2),用於表示控制台輸出報告的詳細程度
推薦閱讀
Uittest官網
灰藍 Python必會的單元測試框架 —— unittest
測試教程網 Uittest