我有一個擴展AbstractTransactionalJUnit4SpringContextTests的JUnit4測試。我有一個商業對象,我用@Transactional標記爲一個工作單元。工作單元更新數據庫,通知用戶&然後嘗試向他們發送通知消息。我配置了回滾MailException(春季簡單郵件API)的方法,並嘲笑MailSender在調用它來驗證回滾功能時拋出SendMailException。集成測試,它模擬異常/回滾條件AbstractTransactionalJUnit4SpringContextTests
儘管在我的單元測試中,事務並沒有回滾,我試圖弄清楚是否因爲它參與正在爲我的實際測試方法打開的事務,因爲那時測試方法並沒有不承諾或回滾。代表一個工作單元的方法被配置爲需要一個新的事務,並且我嘗試在spring配置中配置兩個事務管理器,並指定測試用例使用第二個事務管理器。無論如何,當我檢查單元測試方法中的數據時,即使應用程序代碼遇到郵件發送異常應該回滾它,它仍然會被修改。
任何見解都會很棒。