1.准备
下载、安装、测试用例编写等就不说了。主要了解一下运行测试用例时可能会出现的一点问题。
2.参数设置
为了将TestNG与JMockit结合在一起使用,需要在运行TestNG测试用例之前,为TestNG指定一个Listener。
如果在命令行中运行,则在命令行中添加
-l mockit.integration.testng.Initializer
如果是使用testng.xml文件运行,则添加
<listeners>
<listener class-name="mockit.integration.testng.Initializer" />
</listeners>
另外,为了使JMockit的Mock机制生效,还需要指定以下JVM参数:
-javaagent:path/to/jmockit.jar
3.习惯了那些Out of the box的组件,突然要做点小配置还有点不习惯了。有必要了解一下jmockit的实现原理。
PS:
如何在maven中使用TestNG与JMockit呢: 参照如下配置即可:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.romebuilder</groupId>
<artifactId>rb-wiki</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>rb-wiki</name>
<url>http://romebuilder.com</url>
<repositories>
<repository>
<id>java.net</id>
<url>http://download.java.net/maven/2/</url>
</repository>
<repository>
<id>jmockit-svn</id>
<url>http://jmockit.googlecode.com/svn/maven-repo</url>
<releases>
<checksumPolicy>ignore</checksumPolicy>
</releases>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mockit</groupId>
<artifactId>jmockit</artifactId>
<version>0.999.10</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-javaagent:"${settings.localRepository}"/mockit/jmockit/0.999.10/jmockit-0.999.10.jar</argLine>
</configuration>
</plugin>
</plugins>
</build>
</project>
颜色标注的部分是保证测试正常运行的重点。