транзакция тестового примера junit не фиксируется - ошибок нет

Мы реализовали JUnit4 в нашем приложении, которое использует ядро ​​Spring и JPA с DB2. Нам необходимо протестировать полную функциональность, которая извлекает данные из одной базы данных и объединяет их в другую базу данных.

Тестовый пример для извлечения данных из 1-й базы данных написан и работает безошибочно, но записи не сохраняются во 2-й базе данных.

Реализация

В класс TestCase мы включили следующие аннотации для если необходимо, запустите тестовый пример под транзакцией,

@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({
      DependencyInjectionTestExecutionListener.class,    
      TransactionalTestExecutionListener.class})
@ContextConfiguration(locations={""})
@TransactionConfiguration(transactionManager="defaultTransactionManager", defaultRollback=false)
@Transactional

В приложении у нас есть класс менеджера для выполнения этой операции с помощью метода doSynch (). Из этого метода будет вызван метод txStore () класса crudHelper для инициализации и вызова метода doStore () (в том же классе) для слияния сущности с базой данных.

Далее описывается декларативность транзакций в рамках этой логики тестового примера

TestCase testSynch() - @Transactional(propagation=Propagation.SUPPORTS)
Manager doSynch() - @Transactional(propagation=Propagation.NEVER)
CRUDHelper txStore() - @Transactional(propagation=Propagation.REQUIRED)
           doStore() - No Transactional annotation

doSynch () помечается как НИКОГДА, так как в этот момент он не Не требуется какой-либо транзакции, и на следующих уровнях, таких как в CRUDHelper, транзакция может быть помечена как ТРЕБУЕМАЯ, чтобы обеспечить доступность транзакции.

Проблема

Здесь, когда мы запускаем контрольный пример, который вызывает метод doSynch () диспетчера для проверки функциональности, полный поток работает отлично, за исключением того, что записи не объединяются и не выдается никаких ошибок.

Метод Manager при вызове из JSP прекрасно работает. Также мы протестировали, вызвав txStore () непосредственно из тестового примера, и он также работает нормально.

Пожалуйста, сообщите нам, является ли управление транзакциями неправильным, или решение этой проблемы поможет вам. Также просьба обновить меня, если проблема или среда не ясны. Заранее спасибо. !!

6
задан raksja 17 August 2010 в 06:33
поделиться