spring 如何测试'@Transactional'注解是否如预期般运作

c3frrgcw  于 2022-11-21  发布在  Spring
关注(0)|答案(1)|浏览(177)

我确实有一个案例,在package-private作用域的方法上使用了@Transactional注解,结果发现事务在这个方法中不起作用。
有没有办法写一个RED测试来证明这一点?我们如何测试一个事务是否为一个方法打开,或者当一个异常发生时是否进行了回滚。我考虑过一个INT测试,但不知道如何处理。

z31licg0

z31licg01#

您不需要特定的测试,只需阅读文档:
在Spring的标准配置中使用事务代理时,应该只对具有公共可见性的方法应用@Transactional注解。如果确实使用@Transactional注解对受保护的、私有的或包可见的方法进行了注解,则不会引发错误,但带注解的方法不会显示已配置的事务设置。如果需要对非公共方法进行注解,考虑下一段中关于基于类的代理的提示或者考虑使用AspectJ编译时或加载时编织(稍后描述)。
有关详细信息,请参阅文档

相关问题