我给了一个任务,在其他程序员创建的程序上执行 JUnit + JMock。大多数类(class)都有这个静态字段记录器,即:
static Log logger = LogFactory.getLog(SomeClass.class.getName());
我正在通过在我的 setUp()
方法中实例化它来创建 SomeClass 的实例。当我运行我的 jUnit 类时,我收到此错误消息:
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: (No such file or directory)
我尝试通过在 setUp()
方法中调用 DOMConfigurator.configure("log4j.xml");
来进行手动 log4j 配置,但我仍然收到上面相同的错误消息。
问题是:
- 我如何在调用其他使用 LogFactory.getLog 的类的类中运行我的单元测试 + 模拟
- 我是否应该在设置方法中配置 log4j,以便模拟和单元测试无一异常(exception)地运行?
- 我应该怎么做。
最佳答案
你有两个选择......
- 使用 PowerMock 和 mock up the static getLog method call .
- 为您的测试用例配置 log4j.properties
在 Maven 项目中,第二个选项很简单,因为您只需要在 test/resources 文件夹中创建一个 log4j.properties。
关于java - jUnit + jMock 和 log4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8976507/