我有几个类:StateProcessor和State。我想为StateProcessor.process(State)方法编写一个测试。此方法的逻辑非常简单,但它包含大量日志消息。
logger.info(state.getSourse().toString());
if (state.getTarget() == Target.A) {
logger.info(state.getCreationTime());
service.doSmth(state);
} else {
logger.info(state.getTagret().getName());
service.doOtherStff(state);
}
我不想将真实的State实例传递给process方法,因为这个类真的很复杂,而且构建它需要很多行代码。所以,我想传递用 Mockito 创建的模拟对象。根据主要逻辑,我只需要模拟 getTarget() 方法。但是在state.getTagret().getName()和 state.getSourse().toString()处的 NPE 执行将失败。但我不喜欢嘲笑所有这些方法的想法!它们仅用于记录。此外,我不想每次添加一些日志消息时都修复我的测试。
日志记录在那里非常有用,所以我根本不想删除它。但是嘲笑只用于记录的方法看起来很奇怪。
我该如何解决这个问题?