Junit 测试方法的正确日志输出?
Junit testing correct log output from method?
我的 Java
应用程序中有以下简单的 method
:
我想测试的方法:
public void showOutputOfIdentifications(int age) {
if(age>25){
LOGGER.info("Over 25");
}else{
LOGGER.info("25 or Under");
}
}
如果值为 over/under 25,我如何测试此方法以确保它记录应有的内容?
供参考:我目前正在使用 Junit
框架和 Mockito
。我的记录器是 slf4j
.
假设LOGGER是一个对象,经典的方式是用mock代替。 Mockito 是一个众所周知的模拟库,但其他的都在附近,随便挑一个。使用 mockito,它可能看起来像:
LOGGER_mock = mock(LoggerClass.class);
// inject LOGGER_mock into class to test, eventually use reflection to change
// a private attribute
classToTest.showOutputOfIdentifications(10);
verify(LOGGER_mock).info("25 or Under");
我的 Java
应用程序中有以下简单的 method
:
我想测试的方法:
public void showOutputOfIdentifications(int age) {
if(age>25){
LOGGER.info("Over 25");
}else{
LOGGER.info("25 or Under");
}
}
如果值为 over/under 25,我如何测试此方法以确保它记录应有的内容?
供参考:我目前正在使用 Junit
框架和 Mockito
。我的记录器是 slf4j
.
假设LOGGER是一个对象,经典的方式是用mock代替。 Mockito 是一个众所周知的模拟库,但其他的都在附近,随便挑一个。使用 mockito,它可能看起来像:
LOGGER_mock = mock(LoggerClass.class);
// inject LOGGER_mock into class to test, eventually use reflection to change
// a private attribute
classToTest.showOutputOfIdentifications(10);
verify(LOGGER_mock).info("25 or Under");