Kafka - 如何模拟消费者记录?

R A*_*sha 3 java mockito apache-kafka junit5

我需要一些帮助来为我的 Java kafka 消费者构建 Junit 测试用例。

我的原始源代码具有如下方法,并且需要为其创建一个单元测试用例。

@KafkaListener(topics = "${kafka-receiver-topic}")
public void receiveTopic(ConsumerRecord<?, ?> consumerRecord) throws Exception {
    JSONObject kafkaObject = new JSONObject(consumerRecord.value().toString());
}
Run Code Online (Sandbox Code Playgroud)

Mic*_*son 5

ConsumerRecord有一个公共构造函数,因此您可以自己创建一个实例。

例如,稍微修改一下您的代码:

主要的:

public JSONObject receiveTopic(ConsumerRecord<?, ?> consumerRecord) throws Exception {
    JSONObject kafkaObject = new JSONObject(consumerRecord.value().toString());
    return kafkaObject;
}
Run Code Online (Sandbox Code Playgroud)

测试:

@Test
public void testReceiveTopic() {
    ConsumerRecord<String, String> record = new ConsumerRecord<>("topic", 0, 123L, "key", "value");
    JSONObject expected = <what you expected>
    assertEquals(expected, receiveTopic(record));
}
Run Code Online (Sandbox Code Playgroud)