2010-06-09 23 views
0

如果我要用@Transactional註釋我的DAO集成測試方法,那麼在每個測試方法完成後,Spring Test會高興地回滾對數據庫的所有更改。這些看起來非常方便,因爲我可以使用@BeforeClass方法加載測試數據一次,併爲我處理所有清理。使用Spring Test自動回滾DAO集成測試是一種很好的做法嗎?

但我質疑這是否是一種好的做法,因爲我錯過了發現提交過程中會發生失敗的機會。關於在DAO的dbunit集成測試中使用事務來協助清理的共識是什麼?

回答

2

這很好。您將對您的單元測試執行寫入操作,並且數據庫將驗證這些操作。他們不會承諾,但這最後一步不會因爲業務邏輯而失敗,所以您不應該擔心這一點。

+0

事實證明,我對這種方法非常滿意。此外,每個CUT加載一次測試數據而不是以往的測試方法可以節省大量的集成測試時間。所有這一切中唯一的問題是JUnit @BeforeClass(愚蠢)需要註釋的方法是靜態的。所以我必須找到另一種方法來在每次CUT之前加載測試數據....我爲此寫了自己的助手類。 – HDave 2010-09-12 16:03:04

+0

JUnit要求@BeforeClass是靜態的,因爲它在調用每個測試方法之前會創建一個新的測試類實例。這有助於確保測試之間沒有副作用。每個人都有自己的測試類實例。 – 2011-06-11 21:24:40

相關問題