unittest單元測試框架的最初靈感來自于JUnit,和在其它語言里面的單元測試框架有類似的味道。它支持自動化測試、測試代碼的初始化和回收、將測試用例聚合在一起,有獨立的測試報告框架。
unittest里有一些重要的面向?qū)ο蟮母拍?,只有理解了這幾個概念才能理解單元測試的基本特征:
Test Case(測試用例):
一個TestCase的實例就是一個測試用例。什么是測試用例呢?就是一個完整的測試場景,它是對于特定的輸入進行對應(yīng)的驗證。單元測試的本質(zhì)就在于通過運行這個測試單元,可以對某一個功能進行驗證。
Test Suite(測試套件):
一個功能的驗證往往需要多個測試用例,可以把多個測試用例集合在一起來執(zhí)行,這個時候就產(chǎn)生了測試套件的概念。
Test Fixture
The test fixture is everything we need to have in place to exercise the UT。
這個“東西”不單只是數(shù)據(jù),同時還包括對被測軟件的準備,例如實例化某個被測方法所在的類,準備數(shù)據(jù)庫的ConnectionString等 還有比如測試前準備環(huán)境的搭建(Setup),以及測試后環(huán)境的還原(tearDown)。
Test Runner
test runner是unittest的一個組成部分,指的是測試的執(zhí)行,并提供給用戶的結(jié)果。它可能會使用圖形界面,文本界面,或直接返回一個特殊的值來指示執(zhí)行測試的結(jié)果。