У меня очень простая настройка - контроллер, который вызывает метод в службе.В этой службе я сохраняю объект в БД, а также отправляю сообщение JMS в очередь - как только оно будет сохранено - с использованием внедренного шаблона JMS.В службе по умолчанию включены транзакции.
При тестировании этого вручную - при отключенном сервере ActiveMQ - возникает исключение и откат транзакции - с полным эффектом того, что объект также не сохраняется в БД,Все хорошо.
Однако, когда я запускаю это через интеграционный тест (с ActiveMQ все еще не работает), утверждаю, что у меня есть возможность проверить, что объект не был сохранен в БД с помощью запроса подсчетапосле того, как я вызову контроллер, произойдет сбой, сказав, что счетчик равен 1. Я подтвердил, что БД не имеет ни одного из этих объектов при запуске теста, добавив еще одно утверждение в начале теста, чтобы убедиться, что счетчик равен 0.
Это ожидаемое поведение (возможно, из-за характера транзакций в среде интеграционного тестирования) или я потенциально делаю что-то не так?Исключение все еще вызывается, потому что сервер JMS не работает - и это RuntimeException.
Интеграционные тесты Grails и транзакции создают впечатление, что этого следовало ожидать - в этом случае,Есть ли какие-либо предложения относительно лучших методов проверки поведения транзакций в интеграционных тестах?