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