【发布时间】:2010-10-27 21:29:21
【问题描述】:
我有一个扩展 AbstractTransactionalJUnit4SpringContextTests 的 JUnit4 测试。我有一个使用@Transactional 标记为工作单元的业务对象。工作单元更新已通知用户的数据库,然后尝试向他们发送通知消息。我已经将方法配置为回滚 MailException (spring simple mail api),并模拟了 MailSender 以在调用它来验证回滚功能时抛出 SendMailException。
虽然在我的单元测试中,事务没有回滚,但我试图弄清楚是不是因为它参与了为我的实际测试方法打开的事务,因为那时测试方法还没有t 提交或回滚。代表工作单元的方法被配置为需要一个新事务,我尝试在 spring config 中配置两个事务管理器并指定测试用例使用第二个事务管理器。不管怎样,当我检查单元测试方法中的数据时,它仍然被修改,即使它应该被遇到邮件发送异常的应用程序代码回滚。
任何见解都会很棒。
【问题讨论】:
标签: spring transactions