簡體   English   中英

使用jeeunit時,每次測試后如何重置數據庫?

[英]How to reset database after each test when using jeeunit?

我想知道是否有人在使用jeeunit(或任何其他Java ee應用程序測試框架)進行每次測試之前成功清除數據庫內容?

我已嘗試使用jeeunit文檔中所述的@Transactional批注,在該批注中將回滾所有已完成的事務。 但是,在某些情況下(會話被清除),所做的更改會在測試之間持續存在,從而導致測試污染。

任何幫助/指導表示贊賞!

既然您提到了“任何其他Java ee應用程序測試框架”,我建議您研究Arquillian Persistence Extension,以對Java EE應用程序進行單元測試。 您可以在此處找到有關如何使用它的教程: http : //www.softwarepassion.com/java-ee-6-testing-with-arquillian-persistence-extension/

有關Arquillian本身的更多信息,請點擊此處

DBUnit旨在解決這個確切的問題-他們的網站在這里

Spring框架的AbstractTransactionalJUnit4SpringContextTests是另一個好的開始。

您可以通過在連接執行之前設置autoCommit(false)來自己完成操作,並在代碼運行后回滾。

我的解決方案是將jeeunit與h2 db一起使用,並在每次測試之前通過本機SQL強制刪除數據庫中的所有行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM