2014-06-10 54 views
1

我有同樣的彈簧下面管理事務更新的數組如下:如何在更新時模擬異常以測試spring事務管理?

someRepositoryA.updateEntityA(...) 
someRepositoryB.updateEntityB(...) 
someRepositoryC.updateEntityC(...) 

我如何可以模擬someRepositoryB.updateEntityB(...)拋出Exception?這將允許我看到A所做的更改被撤銷。既然我會測試這個事務,我不能嘲笑版本庫,但是我會使用一些內存數據庫。

+0

那不會是單元測試,會嗎? – Roxana

+0

啊我沒注意標籤:) – JonK

回答

0

我不會模擬一個異常,我會做出真正出問題的東西。測試事務的最簡單方法是讓測試創建一個包含錯誤數據的B,以便更新將導致違反參照完整性約束(任何非空約束?否則可能引入無效的主鍵值),反過來導致拋出異常。