【问题标题】:Junit testing correct log output from method? [duplicate]Junit测试方法的正确日志输出? [复制]
【发布时间】:2016-10-31 20:39:23
【问题描述】:

我的Java 应用程序中有以下简单的method:

我想测试的方法:

 public void showOutputOfIdentifications(int age) {

    if(age>25){

        LOGGER.info("Over 25");

    }else{

        LOGGER.info("25 or Under");

    }
 }

如何测试此方法以确保在值大于/小于 25 时记录应记录的内容?

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

【问题讨论】:

标签: java logging junit int slf4j


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 2016-12-16
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多