Тест последовательной интеграции с каждой транзакцией в отдельном методе тестирования - PullRequest
1 голос
/ 20 марта 2012

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

Это приемлемый метод написания интеграционного теста, который включает много последовательных транзакций базы данных, или это хакерский способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...