我使用 spring-boot、JUnit5、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
。
最佳答案
这是可以预料的:Spring TestContext 框架从来不支持嵌套测试类的“继承”。
因此,您的“变通办法”实际上是此时实现目标的正确方法。
但请注意,我可能会与 SPR-15366 一起添加对嵌套测试类的“伪继承”支持.
问候,
Sam(Spring TestContext 框架的作者)
关于java - 事务回滚在 JUnit5 的 @Nested 类的测试用例中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44203244/