单元测试是开发中必不可少的一部分,是产品代码的重要保证。

Junit和testNG是当前最流行的测试框架,Junit是使用最广泛的测试框架,有兴趣的话自己baidu一下。

testNG基于Junit和Nunit,并引入了很多特性,使其更强大和更易于使用。

有兴趣的可以直接看一下官网:http://testng.org/doc/index.html

用maven可以很方便的构建测试框架。

在这里以maven为例搭建一个测试框架

编辑pom.xml引入必要的jar包

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<powermock.version>1.6.3</powermock.version>
<cobertura.version>2.1.1</cobertura.version>
<sonar.version>5.1</sonar.version>
<junit.version>4.12</junit.version>
</properties> <dependencies>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-testng</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.sourceforge.cobertura</groupId>
<artifactId>cobertura</artifactId>
<version>${cobertura.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.codehaus.sonar</groupId>
<artifactId>sonar-plugin-api</artifactId>
<version>${sonar.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

基本的框架已经搭建,下面写一个最简单的测试类

很多例子取自<<PowerMock实战手册>><<Instant Mock Testing with PowerMock>>

http://wenku.baidu.com/link?url=hKW9B15IRoqIrjpWKYDeR_cGL9hRgYvbT7-rbds59i19l70qzGeW7x3Tzr24Vwuq-vWHggOq6XOs_saW33Li7E492UlXWM8JIpyKMyhvhwa

待测试类:

public class EmployeeService {    

    public String hello(){
return "Hello word!";
}
}

测试类:

public class EmployeeServiceTest {
@Test
public void hello(){
Assert.assertEquals(employeeService.hello(), "Hello word!");
}
}

这是一个不能再简单的例子了,如果IDE有testNG插件的话,直接右键EmployeeServiceTest→run as→testNG test就可以运行。

结果如下:

[TestNG] Running:
C:\Users\changzhz\AppData\Local\Temp\testng-eclipse--447685701\testng-customsuite.xml PASSED: hello ===============================================
Default test
Tests run: 1, Failures: 0, Skips: 0
=============================================== ===============================================
Default suite
Total tests run: 1, Failures: 0, Skips: 0
=============================================== [TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@5f205aa: 344 ms
[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@424c0bc4: 47 ms
[TestNG] Time taken by org.testng.reporters.jq.Main@2ff5659e: 196 ms
[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 0 ms
[TestNG] Time taken by org.testng.reporters.EmailableReporter2@1996cd68: 4 ms
[TestNG] Time taken by org.testng.reporters.XMLReporter@27ddd392: 13 ms

或者用maven运行 :mvn clean test

用maven调用时,请确保测试类以Test或testCase结尾

这个例子太简单了,只是简单说明怎么构架,怎么运行。

用maven搭建 testNG+PowerMock+Mockito测试框架的更多相关文章

  1. 利用Maven, 搭建最简单的SpringMVC框架

    本文介绍使用maven搭建SpringMVC最简单的框架程序过程,适合初学者上手. 文章下载

  2. dubbo应用程序的单元测试环境搭建(springtest,powermock,mockito)

    转:http://blog.csdn.net/yys79/article/details/66472797 最近,项目中频繁用到dubbo,而且java工程用引用了几十个关联系统的服务(如用户认证,基 ...

  3. 使用强大的 Mockito 测试框架来测试你的代码

    原文链接 : Unit tests with Mockito - Tutorial 译文出自 : 掘金翻译计划 译者 : edvardhua 校对者: hackerkevin, futureshine ...

  4. 【TestNG测试】TestNG、Maven、testng.xml构建测试工程

    创建一个maven工程 使用Idea创建maven工程 ​ 建立类似如上的工程结构,src/main/java,src/test/java,pom.xml,testng.xml,这里由于我们使用工程是 ...

  5. Maven 搭建与my-app项目测试

    前提条件,安装jdk1.6及以上版本,并配置JAVA_HOME 首先,下载Maven3.2.2,附下载地址:http://mirror.bit.edu.cn/apache/maven/maven-3/ ...

  6. 强大的Mockito测试框架(转)

    1.自动生成Mock类在需要Mock的属性上标记@Mock注解,然后@RunWith中配置Mockito的TestRunner或者在setUp()方法中显示调用MockitoAnnotations.i ...

  7. 强大的Mockito测试框架

    转载:https://blog.csdn.net/dc_726/article/details/8568537 1自动生成Mock类   在需要Mock的属性上标记@Mock注解,然后@RunWith ...

  8. Selenium+Python+jenkins搭建web自动化测测试框架

    python-3.6.2 chrome 59.0.3071.115 chromedriver 2.9 安装python https://www.python.org/downloads/  (Wind ...

  9. 搭建最简单的SpringMVC框架(使用maven)

    本文说明:本文介绍使用maven搭建SpringMVC最简单的框架程序过程,适合初学者上手. 下载链接 点此进入下载链接 1.创建一个maven webapp工程. 2.修改WEB-INF目录下的we ...

随机推荐

  1. ubuntu 如何 su 到 root(作为 root 用户操作)

    ubuntu 安装后,root用户默认被锁定,不允许登录,也不允许"su"到 root.对于桌面用户来说,这样安全性更高一些,但对于服务器可以设置成"允许 su 到roo ...

  2. Linux内核内存管理子系统分析【转】

    本文转载自:http://blog.csdn.net/coding__madman/article/details/51298718 版权声明:本文为博主原创文章,未经博主允许不得转载. 还是那张熟悉 ...

  3. js相关总结

    1.都是gbk格式的页面使用ajax请求,发起前改变编码格式,可避免乱码. $.ajaxSetup({     'beforeSend' : function(xhr) {         xhr.o ...

  4. JAVA基础知识之JDBC——ResultSet的滚动和更新(statement的额外参数)

    ResultSet不仅可以内存中的一张二维表一样保存statement执行SQL的结果集,还能通过结果集修改DB的数据.ResultSetMetaData则可以用来获得ResultSet对象的相关信息 ...

  5. noi 2985 数字组合

    题目链接: http://noi.openjudge.cn/ch0206/2985/ 2985:数字组合 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 有n个正 ...

  6. Uva 10537 过路费

    题目链接:http://vjudge.net/contest/143062#problem/C 题意: 给定一个无向图,大写字母是城市,小写字母是村庄,经过城市交过路费为当前货物的%5,路过村庄固定交 ...

  7. 数据库设计 Assignment 02

    需求 1.0 请你试分析一下老师(教职工号,老师姓名,年龄),学生(学号,姓名,年龄),课程(课程号,课程名称,开课时间,上课地点)之间的关系, 注:多个老师可以同时教一门课 尝试画出该模型的E-R图 ...

  8. javascript 设计模式2----策略模式

    1.定义:定义一系类的算法,把它们一个个封装起来,并且使它们可以相互替换 2.解释:就是把算法和一个规则单独分封,在使用时单独调用. 简单例子: var strategies = { "S& ...

  9. python(三)set集合

    set集合的特点是无序.不重复序列 创建集合: 1 2 3 4 5 6 7 8 9 10 11 12 13 a.s1 = {11,22} b.s2 = set() c.s3 = set([11,22, ...

  10. ArcGIS Javascript地图上添加json数据格式的点

    /** * 显示地图点. * json的格式[{"name":"name1","x":"x1","y" ...