2013-02-06 85 views
3

我們正在遵循以下慣例爲我們的方法編寫JUnit測試。JUnit測試用例@Before和@After註釋

  • 每個方法都有自己的類,它包含了該方法所需的所有測試。例如:class test {...}

  • @Before將包含像「Entity」這樣的方法的必備設置,以便在編輯時我們不需要複製/粘貼添加實體的代碼在每個方法級別。

現在我在這裏的問題是,我們將刪除我們進入了編寫代碼來垃圾測試數據@After方法,還是讓它成爲所有數據?

我知道我們可以使其可配置,但最佳實踐是什麼?保留或刪除它。根據我的直覺,刪除應該更好,因爲如果db中有一些重複的數據 - 它可能觸發錯誤的真或假。

回答

2

作爲一個最佳實踐,我建議在每次測試之間清除數據存儲,以保證每個測試都與其他測試隔離。

如果您想保留一些設置(例如從@BeforeClass),則可以使用@After方法完成此操作。它也可以在@Before方法中完成,例如通過用每個測試的新實例重寫變量,如果這樣做,則在測試之後不需要清理。

要清理@BeforeClass方法的設置,應該使用@AfterClass例如關閉數據庫連接或類似的東西,只需要完成一次。但這不是每種單元測試都需要的。

3

這取決於你堅持不要重複自己的原則。同樣值得記住的是,在所有@Test已經運行之後調用每個@Test@AfterClass之後調用@After。有了這個粒度,刪除重複應該很簡單,但仍然應該分割那些只應在最後或每次測試之後運行的任務。