TestNG跟jmockit结合使用

TestNG和jmockit结合使用

1.准备

下载、安装、测试用例编写等就不说了。主要了解一下运行测试用例时可能会出现的一点问题。

2.参数设置

为了将TestNGJMockit结合在一起使用,需要在运行TestNG测试用例之前,为TestNG指定一个Listener

如果在命令行中运行,则在命令行中添加

-l mockit.integration.testng.Initializer

如果是使用testng.xml文件运行,则添加

<listeners>
<listener class-name="mockit.integration.testng.Initializer" />
</listeners>

另外,为了使JMockitMock机制生效,还需要指定以下JVM参数:

-javaagent:path/to/jmockit.jar

3.习惯了那些Out of the box的组件,突然要做点小配置还有点不习惯了。有必要了解一下jmockit的实现原理。

PS:

如何在maven中使用TestNGJMockit呢: 参照如下配置即可:

<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>

颜色标注的部分是保证测试正常运行的重点。