Как имитировать метод отправки в канале сообщений SpringBoot в интеграционном тестировании Wiremock

#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, а не в Кафку.