我知道您应该只加载一次 log4j 属性,那么当您进行单元测试时,标准做法是什么?我应该在每个单元测试文件中加载它吗?我应该把它放在 jUnit 的 setUp() 方法中吗?
谢谢
我知道您应该只加载一次 log4j 属性,那么当您进行单元测试时,标准做法是什么?我应该在每个单元测试文件中加载它吗?我应该把它放在 jUnit 的 setUp() 方法中吗?
谢谢
为什么要首先在单元测试中加载 log4j 属性?在正常的事件过程中,单元测试不应该产生日志消息。IMO 您应该简单地关闭日志记录(也适用于正在单元测试的代码)。单元测试唯一需要的输出是 JUnit(或您最喜欢的单元测试框架)自动为您生成的摘要,其他任何东西都只是杂乱无章。我将此添加到我的单元测试类中的类设置方法中:
Logger.getRootLogger().setLevel(Level.OFF);
唯一的例外是当我为一个尚未测试的类/模块组合一个新的单元测试时(我正在使用遗留代码,试图用单元测试逐渐覆盖它),或者在分析一个失败的测试时。然后,我让日志消息进入标准输出,以获取有关我调用的代码中某处出了什么问题的线索。但是一旦单元测试(或应用程序代码)被修复,我再次关闭注销。