Я работаю над проектом Spring Boot, используя RabbitMQ через Spring AMQP. Мы хотели бы иметь возможность протестировать поведение нашего приложения, когда публикация сообщения имеет NACK (в частности, когда аргумент ack PublisherConfirmCallback#confirm имеет значение false). Однако нам сложно реализовать этот сценарий в интеграционном тесте (то есть при работающем приложении, а не в модульном тесте).
Просто чтобы будьте ясны: мы тестируем подтверждения издателя, а не подтверждения потребителя.
Мы знаем, что вы можете получить доступ к каналу с помощью метода выполнения RabbitTemplate, но наш RabbitMQ автоматически подтверждается, поэтому сообщение уже прошло время выполнения обратного вызова канала. Мы думаем, что сможем либо отключить автоматическое подтверждение во время выполнения (чтобы не прерывать набор тестов), либо просто заблокировать канал и получать по нему сообщение вручную в тесте, но мы не можем понять как это сделать. Но на самом деле любой способ вызвать NACK во время теста был бы отличным.
tl;dr, как получить сообщение из клиентского кода
Подробнее здесь: https://stackoverflow.com/questions/352 ... or-testing
Как я могу заставить брокера RabbitMQ NACK отправить сообщение для тестирования? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение