有誰知道的方式來實現測試DAO的流程如下:創建和清潔DB設置一次測試所有的DAO
- 運行SQL腳本來創建公共DB設定(將數據插入到所有表)
- 測試DAO1
- 測試DAO2
- ...
- 清理DB數據步驟創建1
使用Spring,Hibernate,JUnit,Maven堆棧。
我明白,最好的做法是,我們爲每個測試DAO(@BeforeClass)和清理相同的數據所有測試完成後(@AfterClass)之後。
但是在我們的例子中,不同數據庫表之間的依賴關係太多了(客戶端的遺留數據庫:-(目前無法做到這一點)。用測試數據填充每個表需要將其他許多表中的數據作爲那麼,爲每個DAO單獨創建數據將是非常困難且耗時的,因此,我們確實需要創建DB測試數據只需要一次
我已經使用BaseDAO中的靜態塊創建了測試數據DAO Test Class) - 它顯然只運行一次,但是當所有DAO Test子類中的所有測試都完成時,如何進行相同的清理問題在基類中的@AfterClass拆卸方法每次都會在DAO Test類之後運行完成。
請指教。
不知道是否maven是要走的路。有時你需要在執行每個測試方法之前準備數據庫。是否有可能通過Maven實現這一點? –
好的,你說得對。問題的細節是隻準備一次。 –
是的。我們用JUnit'@ MethodRule'(或JUnit 4.9中的'@ TestRule')來完成它,它在每個測試方法之前設置數據庫,並在之後進行清理。無論哪種方式,OP已經在使用Maven,並且要求數據庫設置環繞整個測試階段,而不是測試方法,如問題所述。 – Daniel