单元测试
多方法联测
public class OrderedTestExecutionListener implements TestExecutionListener {
private static boolean rollbackAfterAll = false;
@Override
public void beforeTestMethod(TestContext testContext) {
if (rollbackAfterAll) {
testContext.getApplicationContext().getBean(PlatformTransactionManager.class).resetTransaction();
}
}
@Override
public void afterTestMethod(TestContext testContext) {
rollbackAfterAll = testContext.hasFailed();
}
@Override
public void afterTestClass(TestContext testContext) {
if (rollbackAfterAll) {
TransactionDefinition def = new DefaultTransactionDefinition();
TransactionStatus status = testContext.getApplicationContext()
.getBean(PlatformTransactionManager.class)
.getTransaction(def);
testContext.getApplicationContext()
.getBean(PlatformTransactionManager.class)
.rollback(status);
}
}
}
@SpringJUnitConfig
@TestExecutionListeners(value = OrderedTestExecutionListener.class, mergeMode = MergeMode.MERGE_WITH_DEFAULTS)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class YourTestClass {
@Autowired
private PlatformTransactionManager transactionManager;
@Test
@Order(1)
@Rollback
public void testMethod1() {
}
@Test
@Order(2)
@Rollback
public void testMethod2() {
}
}