java - Junit 测试方法的日志输出是否正确?

标签 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 .

最佳答案

假设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 - Junit 测试方法的日志输出是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38094501/

相关文章:

java - java中的数组保存在内存中的什么位置?

logging - 覆盖 logback 配置

java - 如何使用 Maven 运行特定包中的所有测试?

java - 在我的 java 应用程序中使用 alfresco Rest-API 但找不到方法

java - 如何在JSP中显示Spring Webflow的 "flowScope"的内容?

java - JAXB 解码不填充数据字段

Tomcat 日志记录(如 apache)

python - 如何在日志输出中屏蔽 pandas 数据框列?

android - 查看 Android Studio 中的测试输出 (stdout)

java - PowerMockito.verifyStatic() 问题