2014-02-11 25 views
0

TestCasesetUp()我想確保數據庫的數據處於已知狀態。在setUp()中調用tearDown()?

因爲我不知道其他測試是否留下了一些數據,我開始刪除舊的東西。

現在我發現如果在setUp()的第一行中調用tearDown(),我可以使用更少的代碼。

這是常見模式嗎?還是有更好的解決方案?

更新

我知道如何tearDown()被調用(測試後總是)。

+0

爲什麼不拆除的測試本身? –

+0

在測試中測試:setUp - > test - > tearDown。您不需要在設置中調用拆卸。拆解總是被稱爲。這是在最後的聲明。 – User

回答

1

根據您對帖子的評論,tearDown將始終在測試運行後運行,無論運行是否成功。如果你擔心自己的數據庫可能會得到測試運行之間的某處添加到它的數據,那麼你可以推斷出你的數據庫乾淨的代碼和安裝程序開始調用它還有:

class Test(unittest.testcase): 
    def cleanDB(self): 
     """db cleaning code goes here""" 
    def setUp(self): 
     self.cleanDB() 
     # Rest of setup code 
    def tearDown(self): 
     # tearDown code 
     self.cleanDB() 
相關問題