25.3. unittest — Unit testing framework

    https://docs.python.org/2/library/unittest.htmlhtml

    PYTHON單元測試框架是JUnit的PYTHON語言版本,是有Kent Beck 和 Erich Gamma研發的,該python測試框架又叫PyUnit. 相反,JUnit是Kent 的smalltalk測試框架的JAVA版本。這些都是各自語言的標準測試框架。python

    unittest支持自動化測試,能夠給測試共享setup和shutdown代碼,能夠將測試組合在一塊兒,而且與報告框架測試分開各自獨立。unittest模塊提供的類使得在保證測試集的有用性更容易。
數據庫

    爲了達到這一目標,unittest有如下幾個感念:
框架

test fixture
函數

    test fixture 表明了在執行一個或多個測試前的準備條件,以及任何與回收有關的操做。這些包括建立臨時或代理數據庫,目錄,或者開啓一個服務進程。
單元測試

test case測試

    test case 是最小的測試單元。它檢驗了一個特定輸入集合的特別反應。unittest提供了一個基類,TestCase,這將易於建立新的測試用例。
ui

test suit代理

    測試套集是測試用例,測試套集,或者都有的一個集合。它用於收集一些要執行的測試到一塊兒。
htm

test runner

    test runner是一個組件,他將用例有條理的組合起來,而且將結果輸出給用戶。runner會用圖形接口,文本接口或者返回一些特定值來代表執行測試的結果。

test case和test fixture的概念是由TestCase 和 FunctionTestCase來表示;前者是當建立新的測試時使用,後者是用unittest-driven框架整合存在的測試代碼時使用。當建立test fixtures時使用TestCase,setUp() 和 tearDown()方法會被重載進來用於支持fixture的初始化和清理工做。爲了一些特定的目的,利用 FunctionTestCase將存在的函數傳遞給構造器。 當測試運行時,fixture的初始化先運行;若是測試成功,清理方法會在測試執行完後運行,而不考慮測試的輸出。

TestCase的每一個實例都用來運行一個單例的測試方法,因此每一個測試都有一個新的fixture。


TestSuite類會執行 測試套集。這個類將單個測試和測試套集整合在一塊兒;當測試套集執行的時候,全部的測試會直接添加到套集裏面,在測試套集裏面的測試會運行。


test runner是一個對象,它提供一個方法,run(),它接受 TestCase 或 TestSuit 的對象做爲一個參數,而且返回一個結果對象。類 TestResult 提供告終果對象。 默認狀況下,unittest 提供了 TextTestRunner 做爲test runner來報告結果到標準的錯誤流。 另外,runner能夠爲其它的環境使用而不須要繼承特定的類。

未完待續

相關文章
相關標籤/搜索