我确实有一个案例,在package-private作用域的方法上使用了@Transactional注解,结果发现事务在这个方法中不起作用。有没有办法写一个RED测试来证明这一点?我们如何测试一个事务是否为一个方法打开,或者当一个异常发生时是否进行了回滚。我考虑过一个INT测试,但不知道如何处理。
package-private
@Transactional
z31licg01#
您不需要特定的测试,只需阅读文档:在Spring的标准配置中使用事务代理时,应该只对具有公共可见性的方法应用@Transactional注解。如果确实使用@Transactional注解对受保护的、私有的或包可见的方法进行了注解,则不会引发错误,但带注解的方法不会显示已配置的事务设置。如果需要对非公共方法进行注解,考虑下一段中关于基于类的代理的提示或者考虑使用AspectJ编译时或加载时编织(稍后描述)。有关详细信息,请参阅文档
1条答案
按热度按时间z31licg01#
您不需要特定的测试,只需阅读文档:
在Spring的标准配置中使用事务代理时,应该只对具有公共可见性的方法应用@Transactional注解。如果确实使用@Transactional注解对受保护的、私有的或包可见的方法进行了注解,则不会引发错误,但带注解的方法不会显示已配置的事务设置。如果需要对非公共方法进行注解,考虑下一段中关于基于类的代理的提示或者考虑使用AspectJ编译时或加载时编织(稍后描述)。
有关详细信息,请参阅文档