mockito 为isDebugEnabled模拟LoggerFactory时出现不必要的StubbingException

axkjgtzd  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(191)

我试图提高我的分支覆盖率,并模拟Logger来检查“isDebugEnabled”的两种情况。
下面是我的测试用例:

@Test
    public void testLogger() {
        try (MockedStatic<LoggerFactory> 
                loggerFactoryMockedStatic = mockStatic(LoggerFactory.class)) {
            Logger logger = mock(Logger.class);
            loggerFactoryMockedStatic.when(() -> LoggerFactory.getLogger(any(Class.class))).thenReturn(logger);

            when(logger.isDebugEnabled()).thenReturn(Boolean.FALSE);
            Response res = endpoint.check();
        }

    }

但是当我将调试设置为启用时,它会导致“UnnecessaryStubbingException”。
你知道我该怎么做吗?

zazmityj

zazmityj1#

为测试配置启用相应的调试日志记录。
您可以考虑使用所有可用的日志记录级别分别运行所有测试,例如warning-/info-/trace-enabled等,这可能是扩展测试的一部分。然后合并所有日志结果和覆盖率以进行报告。

相关问题