我用的是Spring BootJUnit5 Mybatis
@SpringJUnitJupiterConfig(classes = {RepositoryTestConfig.class})
@MapperScan
@Rollback
@Transactional
public class TestClass {
@Autowired
private TestMapper testMapper;
@BeforeEach
void init() {
User user = new User();
testMapper.insert(user);
}
@Test
public void test1() {
// (1) success rollback
}
@Nested
class WhenExistData {
@Test
public void test2() {
// (2) rollback not working
}
}
}
(1)正在进行回滚。输出如下日志。
2017-05-26 22:21:29 [INFO ](TransactionContext.java:136) Rolled back transaction for test context ...
但是,(2)不起作用。我希望能够回滚到@Nested
。
4条答案
按热度按时间pb3s4cty1#
这是可以预料的:* SpringTestContext框架 * 从未支持嵌套测试类的“继承”。
因此,你的“变通方法”实际上是在这个时间点上实现你的目标的正确方法。
但是,请注意,我可能会结合SPR-15366为 nested 测试类添加对“伪继承”的支持。
此致!
Sam(* Spring测试上下文框架的作者 *)
vfh0ocws2#
我用下面的方法解决了这个问题。
643ylb083#
我用下面的方法解决了这个问题
hzbexzde4#
在封闭类上使用Spring中的注解NestedTestConfiguration对我来说很有用。
因此,在您的TestClass上,您可能会有目前的注解,然后: