Единственный способ успешно выполнить серию последовательных транзакций в установленном порядке в моем тесте интеграции 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 */
}
.
.
.
}
Это приемлемый метод написания интеграционного теста, который включает много последовательных транзакций базы данных, или это хакерский способ сделать это?