Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为日志编写mockito测试用例?_Java_Log4j_Mockito - Fatal编程技术网

Java 如何为日志编写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

我不明白如何为此编写测试用例。 我使用的是apachelog4j记录器 并使用spring boot在mockito中编写测试用例

当我有这样的代码时如何模拟日志

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);
  }
  ...
  ...
}