如何模拟消费者记录?

时间:2019-09-05 06:27:12

标签: java apache-kafka mockito junit5

在为Java kafka使用者构建Junit测试用例时,我需要一些帮助。

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

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

1 个答案:

答案 0 :(得分:2)

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

例如,稍微修改代码:

主要:

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

测试:

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