Как я могу протестировать метод с аннотацией @KafkaListener в приложении весенней загрузки?
У меня есть spring
компонент с @KafkaListener
метод:
@Slf4j
@Component
public class ResponseHandler {
private final ResponseMessageService responseMessageService;
public ResponseHandler(ResponseMessageService responseMessageService) {
this.responseMessageService= responseMessageService;
}
@KafkaListener(topics = "response-topic", groupId = "response-group")
public void listen(ResponseMessage responseMessage) {
responseMessageService.processResponse(responseMessage);
}
}
Теперь я хочу проверить этот метод. Я хочу убедиться, что этот метод получает сообщения правильно. Я пытаюсь создать a Unit test
:
@RunWith(SpringRunner.class)
@SpringBootTest
public class ResponseHandlerTest {
@ClassRule
public static EmbeddedKafkaRule broker = new EmbeddedKafkaRule(1, false, 5, "response-topic");
@BeforeClass
public static void setup() {
System.setProperty("spring.kafka.bootstrap-servers", broker.getEmbeddedKafka().getBrokersAsString());
}
@Test
public void listen() {
}
}
Но я не понимаю, что дальше. Как я могу проверить этот метод?
1 ответ
Посмотрите этот ответ для одного способа сделать это.
Также прочитайте ответ Артема Билана на этот же вопрос.
Наконец, вы можете заменить свой ResponseMessageService
с фиктивным объектом в вашем тестовом примере, и убедитесь, что он был вызван, как и ожидалось.