【发布时间】:2022-01-19 13:34:57
【问题描述】:
我是 Java 单元测试的新手,需要帮助编写一个单元测试,该单元测试只需要处理方法没有返回值的“if”语句的 2 条路径。
public class Consumer extends KafkaConsumer {
private final MessageService service;
public Consumer(MessageService service) {
this.service = service;
}
@Override
protected void processRecords(ConsumerRecords<Long, String> records) {
for (ConsumerRecord<Long, String> records) {
if (record.value().startsWith("{")) {
OldFormatMessageObject mo = new OldFormatMessageObject(record.value());
service.processMessage(mo);
} else if (record.value().startsWith("metadata")) {
NewFormatMessageObject mo = new NewFormatMessageObject(record.value());
service.processMessage(mo);
}
}
}
【问题讨论】:
-
这里需要用到mocks,然后验证unit和mocks的交互。好吧,例如,尝试使用 Mockito。
-
OldFormatMessageObject和NewFormatMessageObject有一个共同的超类,对吧?它是什么? -
它们都是独立的类。
标签: java unit-testing