Как я могу протестировать метод @onFailure?
Как я мог перейти к «@Override public void onFailure(Throwable ex) {...}»?
Всегда идет "@Override public void onSuccess (SendResult <String, KafkaPresponseDto> result) {...}".
Я хочу напечатать log.error ("Невозможно отправить сообщение =["+kafkaPgResponseDto.toString()+"] из-за:" + ex.getMessage());
Пожалуйста помоги...
ListenableFuture<SendResult<String, KafkaPgResponseDto>> future = pgResponseKafkaTemplate.send(kurlyTopicNamePgResponse, kafkaPgResponseDto);
future.addCallback(new ListenableFutureCallback<SendResult<String, KafkaPgResponseDto>>(){
@Override
public void onSuccess(SendResult<String, KafkaPgResponseDto> result) {
KafkaPgResponseDto kafkaPgResponseDto = result.getProducerRecord().value();
log.debug("Send message=["+kafkaPgResponseDto.toString()+"] with offset=["+result.getRecordMetadata().offset()+"]");
}
@Override
public void onFailure(Throwable ex) {
log.error("Unable to send message=["+kafkaPgResponseDto.toString()+"] due to : "+ex.getMessage());
kafkaTransactionService.failedProcessingKafkaHistorySave(orderNo, kurlyTopicNamePgResponse, gson.toJson(payload), ex.toString());
}
});
1 ответ
Я считаю, что в настоящей Кафке нет необходимости проверять вашу функциональность. Рассмотрите возможность использования
MockProducer
для инъекции в это
KafkaTemplate
и эмулировать ошибку для этого
onFailure()
кейс: https://www.baeldung.com/kafka-mockproducer