目录
4 使用JMockit运行测试
要运行使用任何JMockit API的测试,请按照通常的方式使用Java IDE,Maven / Gradle构建脚本等。 原则上,可以使用Windows,Mac OS X或Linux上的任何1.7或更高版本的JDK。 JMockit支持(并要求)使用JUnit(版本4或5)或TestNG; 具体来说,你需要:
- 将jmockit依赖项或jar包添加到测试类路径。
- 将测试执行JVM配置为以“”-javaagent:<正确路径> /jmockit.1.x.jar”初始化参数开头。 可以在构建脚本文件中为Maven或Gradle等工具指定,也可以在IntelliJ IDEA或Eclipse的“运行/调试配置”中指定。推荐在构建脚本中指定。
4.1从Maven运行测试
1 添加JMockit的Maven依赖
JMockit工件位于Maven中央存储库中。 要在测试套件中使用它们,请将以下内容添加到pom.xml文件中:
<dependencies>
<dependency>
<groupId>org.jmockit</groupId>
<artifactId>jmockit</artifactId>
<version>${jmockit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
注:jmockit.version在pom.xml中指定,如:
<properties>
<jmockit.version>1.46</jmockit.version>
</properties>
2 添加-javaagent JVM初始化参数
确保指定的版本(此处在“jmockit.version”属性中指定)是您真正想要的版本。 在开发历史记录页面中查找当前版本。 JMockit还需要使用-javaagent JVM初始化参数; 当使用Maven Surefire插件进行测试时,它的指定如下:
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.21.0</version> <!-- or some other version -->
<configuration>
<argLine>
-javaagent:${settings.localRepository}/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar
</argLine>
<!-- ... -->
</configuration>
</plugin>
<!-- ... -->
<plugins>
3 配置不正确,可能的报错
(1)不添加依赖没法使用,这是毋庸置疑的。
(2)pom.xml中依赖顺序,jmockit放在junit之前,否则会报错:Caused by: java.lang.IllegalStateException: JMockit didn't get initialized; please check jmockit.jar precedes junit.jar in the classpath
(3)必须添加-javaagent JVM初始化参数,否则会报错:Caused by: java.lang.IllegalStateException: JMockit didn't get initialized; please check the -javaagent JVM initialization parameter was used
有关在Maven中使用JMockit Coverage的信息,请参阅 http://jmockit.github.io/tutorial/CodeCoverage.html#maven 章中的相关部分。
4.2从Gradle运行测试
Gradle还将从mavenCentral()存储库下载必要的工件。 在gradle.build文件中,添加jmockit依赖项和测试配置,如果需要,替换所需版本的编号:
repositories {
mavenCentral()
}
def jmockitVersion = '1.xy'
dependencies {
... "compile" dependencies ...
testCompile "org.jmockit:jmockit:$jmockitVersion"
}
test {
jvmArgs "-javaagent:${classpath.find { it.name.contains("jmockit") }.absolutePath}"
}
参考JMockit官网文档:http://jmockit.github.io/tutorial/Introduction.html#runningTests