unittest 重用舊的測(cè)試代碼

2022-08-02 11:05 更新

一些用戶會(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í)例


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)