【发布时间】:2014-06-19 23:36:30
【问题描述】:
我使用JUnit 进行单元测试。我在单元测试中使用JMockit 模拟一些java.util 类:
new MockUp<PrintWriter>() { //HERE UNIT TESTS HANG ON
@SuppressWarnings("unused")
@Mock(invocations = 5)
public void print(String s) {
System.out.print(s);
}
@SuppressWarnings("unused")
@Mock(invocations = 1)
public void flush() {}
};
问题:我的单元测试只是停留在模型定义上。
问题:你能猜出问题所在吗?
我的依赖:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<dependency>
<groupId>com.googlecode.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>1.7</version>
</dependency>
</dependencies>
【问题讨论】:
-
这里与 Mac Os x 相同。它卡在
MacosxVirtualMachine.read(int, byte[], int, int) line: not available [native method] -
@perencia 所以 JMockit 不能模拟调用本机函数的方法。我说的对吗?
-
我不确定这是个问题..
-
您应该颠倒
junit和jmockit依赖项之间的顺序,以便 JMockit 可以正确安装其与 JUnit 的集成。不需要-javaagent参数,前提是您使用的是 JDK 1.6+ 和有效的“附加 API”实现(我建议使用 Oracle JDK)。
标签: java unit-testing junit jmockit