Как я могу протестировать метод с аннотацией @KafkaListener в приложении весенней загрузки? - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть 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 Ответ

1 голос
/ 15 апреля 2019

См. этот ответ , чтобы узнать, как это сделать.

Также прочитайте ответ Артема Билана на этот же вопрос.

Наконец, вы можете заменить свой ResponseMessageService с фиктивным объектом в вашем тестовом примере и убедитесь, что он был вызван, как и ожидалось.

...