Java 如何为日志编写mockito测试用例?
我不明白如何为此编写测试用例。 我使用的是apachelog4j记录器 并使用spring boot在mockito中编写测试用例 当我有这样的代码时如何模拟日志Java 如何为日志编写mockito测试用例?,java,log4j,mockito,Java,Log4j,Mockito,我不明白如何为此编写测试用例。 我使用的是apachelog4j记录器 并使用spring boot在mockito中编写测试用例 当我有这样的代码时如何模拟日志 public void someMethod(Object obj) { ObjectMapper o = new ObjectMapper (); logger.info(o.writeValueAsString(obj)); } 测试班 class Someclass { Logger logger= Logger
public void someMethod(Object obj) {
ObjectMapper o = new ObjectMapper ();
logger.info(o.writeValueAsString(obj));
}
测试班
class Someclass {
Logger logger= LoggerFactory.getLogger(Someclass);
//Some code and methods
}
注入模拟记录器,调用方法,然后验证是否已在模拟记录器上调用info()。但首先,修复编译错误,并缩进代码。正确,但如何模拟logger对象。我已经为引用添加了一个有问题的代码,如果您通过这种方式从静态方法调用获得它,您将无法使用Mockito对其进行模拟。或者使用PowerMockito(在这方面无能为力),或者用Spring注入它,或者不测试日志(您真的需要测试吗?),不幸的是,是的。。。我曾试图嘲笑它,但我做不到”。我已经添加了代码,如果通过这种方式从静态方法调用获取,您将无法使用Mockito对其进行模拟。要么使用PowerMockito(在这方面无能为力),要么用Spring注入它。
class SomeclassTest{
...
...
Logger logger;
@Before {
public void setup () {
Mockito.when
(LoggerFactory.getLoggers(Matchers.any(Class.class)))
.thenReturn(logger);
}
...
...
}