我有一个创建错误条件的单元测试。通常,被测类会将此错误写入日志(在这种情况下使用 log4j,但我认为这并不重要)。我可以临时更改日志级别,使用
Logger targetLogger = Logger.getLogger(ClassUnderTest.class);
Level oldLvl = targetLogger.getLevel();
targetLogger.setLevel(Level.FATAL);
theTestObject.doABadThing();
assertTrue(theTestObject.hadAnError());
targetLogger.setLevel(oldLvl);
但这也意味着如果在测试期间发生不相关/意外的错误,我也不会在日志中看到该信息。
我应该在这里使用最佳实践或常见模式吗?如果可以的话,我不喜欢刺激日志级别,但我也不喜欢ERROR
在测试输出中有一堆噪音,这可能会吓到未来的开发人员。