java - jUnit + jMock 和 log4j

标签 java junit log4j jmock

我给了一个任务,在其他程序员创建的程序上执行 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)地运行?
  • 我应该怎么做。

最佳答案

你有两个选择......

在 Maven 项目中,第二个选项很简单,因为您只需要在 test/resources 文件夹中创建一个 log4j.properties。

关于java - jUnit + jMock 和 log4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8976507/

相关文章:

java - 如何让 SLF4J 在应用程序中自动注入(inject)我的 Logger 实现?

java - 在 httpclient 中,将 HttpEntity 转换为字符串的最优雅/正确的方法是什么?

java - 在 Thread.sleep() 函数 java 中使用 double 值

java - 替换一系列 if/else-if/else 语句,这些语句会递增整数数组中的七个变量

testing - 如何 Junit 测试具有特定响应的 servlet 过滤器

java - PowerMock 链接错误 : MockClassLoader javax/management/MBeanServer

java - log4j2 日志记录发生在错误的路径中

java - 如何将数组转换为 ListIterator?

java - 如何在maven中添加JaCoCo

java - 默认 log4j MDC 值