Как я могу протестировать метод @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

Другие вопросы по тегам