#java #spring-boot #apache-kafka #integration-testing #wiremock
Вопрос:
Я использую Spring Boot Java для своего приложения. Приложение отправляет некоторые сообщения Кафке с помощью канала сообщений. Пример: this.MessageChannel.отправить(сообщение).
Я хотел бы издеваться над этим вызовом канала сообщений в интеграционном тестировании, чтобы сообщения не отправлялись Кафке. В настоящее время используется Wiremock для тестирования интеграции Spring.
Пожалуйста, предложите мне способы издеваться над методом отправки сообщений по каналу
Ответ №1:
Если вы хотите использовать канал сообщений Kafka для интеграционных тестов, используйте spring-kafka-test
встроенный сервер Kafka…
Насмешки обычно не используются для интеграционных тестов. Может быть, вы имели в виду подделки?
В этом случае вам нужно создать свой собственный класс, который implements MessageChannel
и перезаписать send
функцию с ожидаемым поведением, а затем передать это конструктору класса, на который вы ссылаетесь this
в своем вопросе.
В качестве альтернативы, звучит так, как вы хотите spring-integration-http
, если вы используете WireMock и собираетесь отправлять send
сообщения в конечную точку HTTP, а не в Кафку.