一些用戶會(huì)發(fā)現(xiàn)他們有現(xiàn)有的測(cè)試代碼,他們希望從unittest運(yùn)行,而無(wú)需將每個(gè)舊的測(cè)試函數(shù)轉(zhuǎn)換為TestCase子類。
因此,unittest 提供了一個(gè) FunctionTestCase 類。TestCase 的這個(gè)子類可用于包裝現(xiàn)有的測(cè)試函數(shù)。還可以提供設(shè)置和拆卸功能。
給定以下測(cè)試函數(shù):
def testSomething(): something = makeSomething() assert something.name is not None # ...
可以創(chuàng)建一個(gè)等效的測(cè)試用例實(shí)例,如下所示,具有可選的set-up和tear-down方法:
testcase = unittest.FunctionTestCase(testSomething, setUp=makeSomethingDB, tearDown=deleteSomethingDB)
注意
盡管FunctionTestCase
可用于將現(xiàn)有測(cè)試基礎(chǔ)快速轉(zhuǎn)換為基于unittest
的系統(tǒng),但不建議使用此方法。花時(shí)間設(shè)置適當(dāng)?shù)?nbsp;TestCase
子類將使將來(lái)的測(cè)試重構(gòu)變得無(wú)限容易。
在某些情況下,現(xiàn)有測(cè)試可能是使用 doctest 模塊編寫(xiě)的。如果是這樣,doctest 提供了一個(gè) DocTestSuite 類,它可以從現(xiàn)有的基于 doctest 的測(cè)試中自動(dòng)構(gòu)建 unittest.TestSuite 實(shí)例
更多建議: