亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何測試是否正在調用帶有@KafkaListener 的方法

如何測試是否正在調用帶有@KafkaListener 的方法

慕森卡 2022-12-28 10:00:00
我真的很難編寫一個測試來檢查當消息發送到它的指定主題時我的 Kafka 消費者是否被正確調用。我的消費者:@Service@Slf4j@AllArgsConstructor(onConstructor = @__(@Autowired))public class ProcessingConsumer {  private AppService appService;  @KafkaListener(      topics = "${topic}",      containerFactory = "processingConsumerContainerFactory")  public void listen(ConsumerRecord<Key, Value> message, Acknowledgment ack) {    try {      appService.processMessage(message);      ack.acknowledge();    } catch (Throwable t) {      log.error("error while processing message!", t);    }  }}我的消費者配置:@EnableKafka@Configurationpublic class ProcessingCosumerConfig {  @Value("${spring.kafka.schema-registry-url}")  private String schemaRegistryUrl;  private KafkaProperties props;  public ProcessingCosumerConfig(KafkaProperties kafkaProperties) {    this.props = kafkaProperties;  }  public Map<String, Object> deserializerConfigs() {    Map<String, Object> props = new HashMap<>();    props.put(KafkaAvroDeserializerConfig.SPECIFIC_AVRO_READER_CONFIG, true);    props.put(KafkaAvroDeserializerConfig.SCHEMA_REGISTRY_URL_CONFIG, schemaRegistryUrl);    return props;  }  private KafkaAvroDeserializer getKafkaAvroDeserializer(Boolean isKey) {    KafkaAvroDeserializer kafkaAvroDeserializer = new KafkaAvroDeserializer();    kafkaAvroDeserializer.configure(deserializerConfigs(), isKey);    return kafkaAvroDeserializer;  }  private DefaultKafkaConsumerFactory consumerFactory() {    return new DefaultKafkaConsumerFactory<>(        props.buildConsumerProperties(),        getKafkaAvroDeserializer(true),        getKafkaAvroDeserializer(false));  }
查看完整描述

1 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

將模擬 AppService 注入偵聽器并驗證其 processMessage() 已被調用。



查看完整回答
反對 回復 2022-12-28
  • 1 回答
  • 0 關注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號