如何为Overide方法编写Junit测试?



如何为重写方法编写单元测试?代码看起来像这样,但是我不能得到更多的覆盖重写方法的代码。

public MessageHandler handler() {
return new MessageHandler() {
@SneakyThrows
@Override
public void handleMessage(Message<?> message) throws MessagingException {
log.info("Fetching " + message.getPayload());
var file = (File) message.getPayload();
var content = Files.readString(Path.of(file.getPath()));
List<String> fields = Arrays.stream(content.split(";"))
.map(String::trim)
.collect(Collectors.toList());
if(((File) message.getPayload()).getName().startsWith("ACH")) {
log.info("Backup: ", file);
sftpGetAway.sendToSftpUploaded(file);
}else {
log.info("Backup: ", file);
sftpGetAway.sendToSftpNonUploaded(file);
}
processFile(((File) message.getPayload()).getName(), fields);
}
};
}

单元测试代码如下:

@Test
public void handler() throws BadRequestException, IOException {
Message<?> message = MessageBuilder.withPayload("@inboundtest.start()")
.setHeader("SOME_HEADER_KEY", "SOME_HEADER_VALUE")
.build();
MessageHandler hand = Mockito.spy(MessageHandler.class);
doNothing().when(hand).handleMessage(any(Message.class));
MessageHandler handler = processAchServiceImp.handler();
hand.handleMessage(message);
Assert.assertNotNull(handler);
}

测试运行良好,但覆盖率不能增加。

似乎你在嘲笑undertest:

MessageHandler hand = Mockito.spy(MessageHandler.class);
doNothing().when(hand).handleMessage(any(Message.class));

你应该模仿你的依赖项。这个链接应该会对你的问题给出更多的解释。

相关内容

  • 没有找到相关文章

最新更新