2016-06-16 1 views
1

Я пытаюсь выполнить (интегрировать) метод, аннотированный с помощью Spring @Async. Тест устанавливает некоторые данные в базе данных h2 в памяти, затем запускает асинхронный метод. Асинхронный код не отображает тестовые данные: O Удаление @Async устраняет проблему.Spring @Async - данные не найдены в тесте интеграции

Любая помощь? :)

ответ

0

Сделка не распространяется, как это было до вашего @Async.

@Async and @Transactional: not working

Ваш тест может совершить данные и удалить его по обе стороны теста, убрав автоматический откат Spring внутри тестовых @Transactionals.

Вы можете создать метод доступа по умолчанию, к которому должен обратиться метод async, который ваш тест также может вызвать прямо, хотя вы больше не будете тестировать поведение Async.

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

Смежные вопросы