其他分享
首页 > 其他分享> > Spring和JUnit,使用@Transaction注释类和方法的区别?

Spring和JUnit,使用@Transaction注释类和方法的区别?

作者:互联网

我想了解如果我使用@Transactional注释我的junit类,Spring将只创建一个将在我的@Test方法之间共享并在最后回滚的事务.而如果我用@Transactional标记每个@Test,将创建一个新事务并在@Test基础上回滚.我在官方文档(link)中找不到预期的行为.

解决方法:

将@Transactional放在类级别上等同于将它放在每个测试方法上.

我认为没有一种简单的方法可以实现您的第一个场景,即所有测试的单个事务.我不确定它是否有意义,因为测试将以随机顺序执行,因此您不能依赖于看到彼此修改.当然,您始终可以使用单个事务从单个超级测试中明确调用您的方法.

标签:spring-transactions,spring,transactions
来源: https://codeday.me/bug/20190826/1726310.html