Мы используем Spring Cloud Streams, которые слушают тему Кафки и вызывают службу отдыха.Мы также реализуем пользовательский StreamRetryTemplate, чтобы указать, какие ошибки мы считаем восстанавливаемыми, а какие нет.Я не могу получить согласованные результаты между тем, как он работает во время выполнения и как он работает в интеграционных тестах.
В режиме отладки я проверил, что исключение генерируется правильно и что RetryTemplate вводится правильно, но, похоже, он не используется в моих интеграционных тестах.
@EnableBinding(Sink::class)
class MyListener(private val myService: Service) {
@StreamListener(Sink.Input)
fun consume(@Payload msg: MyMessage) = myService.process(msg)
@SteamRetryTemplate
fun getRetryTemplate() = RetryTemplate()
}
Когда я запускаю это приложение и myService выдает исключение, я ожидаю, что оно будет повторено, и это происходит идеально.Но когда я пишу интеграционные тесты с сервером Wiremock, и myService выдает исключение, он не повторяется.У меня есть операторы assert, чтобы проверить, сколько раз моя конечная точка Wiremock была поражена.
Я что-то упустил специально для попыток работы в интеграционных тестах?