【4-1】基於Python-unittest運用:unittest介紹及例項
阿新 • • 發佈:2020-09-03
該第四章節是最重要的基礎:unittest
1. 什麼是unittest?
unittest是python的標準測試庫,相比於其他測試框架是python目前使用最廣的單元測試框架。
unittest有4個比較重要的概念是test fixture, test case, test suite, test runner
-
test fixture:對一個測試用例環境的搭建和銷燬,是一個fixture。簡單來說就是做一些測試過程中需要準備的東西,其中 setUp() 和 setDown() 是最常用的方法,比如建立臨時的資料庫:那麼可以在 setUp()建立資料庫連線以及進行一些初始化,在setDown()中清除在產生的資料,確定一個TestCase留下一個乾淨的環境。
-
test case:使用者自定義的測試case的基類,一個例項即代表一個測試用例。會依次呼叫:環境搭建setUUp、執行測試程式碼run,以及測試環境的還原tearDown()方法。
-
test suite:測試用例集合,可以通過addTest()方法手動增加Test Case,也可通過TestLoader自動新增Test Case,TestLoader在新增用例時,會沒有順序。同時test suite可以巢狀test suite
-
test runner:執行測試用例的驅動類,可以執行TestCase,也可執行TestSuite。執行後TestCase和Testsuite會自動管理TestResult。
例項:unittest模擬測試
import unittest class TestCase(unittest.TestCase): def setUp(self): """每個case執行開始都執行一次""" print("第{0}用例開始".format(self.i)) def tearDown(self): """每個case執行結束都執行一次""" print("第{0}用例結束".format(self.i)) # 那如何讓執行此類才執行一次呢? @classmethoddef setUpClass(cls): print("--類開始--") @classmethod def tearDownClass(cls): print("--類結束--") # 以下為用例 def test_case01(self): print("111") def test_case02(self): print("222") def test_case03(self): print("333") if __name__ == "__main__": unittest.main()
輸出結果為:
--類開始-- 用例開始 111 用例結束 用例開始 222 用例結束 用例開始 333 用例結束 --類結束--