Junit测试方法的正确日志输出?

时间:2016-06-29 08:43:42

标签: java logging junit int slf4j

我的method应用程序中包含以下简单Java

方法我想测试:

 public void showOutputOfIdentifications(int age) {

    if(age>25){

        LOGGER.info("Over 25");

    }else{

        LOGGER.info("25 or Under");

    }
 }

如何测试此方法以确保在值超过/低于25时记录应该是什么?

供参考:我目前正在使用Junit框架Mockito。我的记录器是slf4j

1 个答案:

答案 0 :(得分:0)

如果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");