Spring 在单独的测试方法中对每个事务进行顺序集成测试

Spring 在单独的测试方法中对每个事务进行顺序集成测试,spring,transactions,integration-testing,Spring,Transactions,Integration Testing,在我的Spring集成测试中,我成功地获得一系列要按时提交的顺序事务的唯一方法是将每个逻辑事务放在一个单独的@Transactional@test方法中,并将这些方法按我希望它们执行的顺序排列,因此我的测试类如下所示: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"file:src/test/resources/itest/integrationTestContext.xml"}) @Tran

在我的Spring集成测试中,我成功地获得一系列要按时提交的顺序事务的唯一方法是将每个逻辑事务放在一个单独的@Transactional@test方法中,并将这些方法按我希望它们执行的顺序排列,因此我的测试类如下所示:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:src/test/resources/itest/integrationTestContext.xml"}) 
@TransactionConfiguration(transactionManager="myTxManager", defaultRollback=false)
@TestExecutionListeners({DependencyInjectionTestExecutionListener.class, TransactionalTestExecutionListener.class}) 

public class ITAccessPoint {

    @Test
    @Transactional
    public void transaction1() {
        myDAO.persist(obj1);
    }

    @Test
    public void testStep1() {
        /* code that depends on obj1 being persisted & committed */
    }

    @Test
    @Transactional
    public void transaction2() {
        myDAO.persist(obj2);
    }

    @Test
    public void testStep2() {
        /* code that depends on obj2 being persisted & committed */
    }
    .
    .
    .
}
这是一种可以接受的编写涉及许多连续数据库事务的集成测试的技术,还是一种黑客式的方法