白盒测试的学习之路----(四)搭建测试框架TestNG测试
TestNG是一个开源自动化测试框架; TestNG是类似于JUnit,但它不是一个JUnit扩展。它的灵感来源于JUnit。它的目的是优于JUnit的,尤其是当测试集成的类。 TestNG消除了大部分的旧框架的限制,使开发人员能够编写更加灵活和强大的测试。 因为它在很大程度上借鉴了Java注解(JDK5.0引入的)来定义的测试,它也可以告诉你如何使用这个新功能在真实的Java语言生产环境中。一般开发使用的是JUnit做单元测试,而测试一般都是勇士TestNG。
首先,就是下载相关jar包(testng-6.8.8.jar),下载完成之后在所需项目内引入该jar包。接下来创建一个testng的class即可。然后就可以开始进行编写测试代码。http://www.cnblogs.com/TankXiao/p/3888070.html这个是之前我入门参考的部分文档。还是挺有用的。插件的安装可参考之前我的总结文章:MyEclipse安装插件的三种方法和使用心得,里面就是以TestNG插件安装为例,插件安装和导入相关的jar包已经在文件目录下上传了,可以方便大家学习。
TestNG的基本注释在这个例子中,仅仅使用了2个,下面简单介绍下:@Test:标记一个类或方法作为测试的一部分。@DataProvider:标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。
测试代码如下:
package com.loleina.whiteTest;
import java.lang.reflect.Method;
import org.testng.Assert;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class testSourceCode {
@Test(dataProvider="providerMethod")
public void testjudgeKindOfTriangle(int a,int b,int c) {
int result =TriangleJudgeSourceCode.judgeKindOfTriangle(a,b,c);
Assert.assertEquals(result, 3);
}
@DataProvider
public static Object[][] providerMethod(Method method){
return new Object[][]{
{3,3,5}
};
}
}
搭建好简单的测试环境,就如上所述。但是存在一些问题,比如测试用例得一条条在代码里添加,很麻烦,最好是能用excel来管理测试用例,实现参数分离;
白盒测试的学习之路----(四)搭建测试框架TestNG测试的更多相关文章
- 用 Python 测试框架简化测试
用 Python 测试框架简化测试 摘要:本文将向您介绍了三种流行 Python 测试框架(zope.testing,py.test,nose)的基本特性,并讨论新一代的测试风格. 最近出现了行业级的 ...
- Redis——学习之路四(初识主从配置)
首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...
- 使用强大的 Mockito 测试框架来测试你的代码
原文链接 : Unit tests with Mockito - Tutorial 译文出自 : 掘金翻译计划 译者 : edvardhua 校对者: hackerkevin, futureshine ...
- java 测试框架 TestNG
Java中print.printf.println的区别 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和prin ...
- 关于flask 上直接使用py.test测试框架进行测试
这个周末基本上都在研究这玩意儿中度过了,虽然效率不高,英文文档看得晕头转向,但是好歹弄出来了 有个结果测试也通过了现在粗略总结一下有时间补上更多详细的例子. 首先使用py.test测试框架,可以做最简 ...
- zigbee学习之路(四):按键控制(中断方式)
一.前言 通过上次的学习,我们学习了如何用按键控制led,但是在实际应用中,这种查询方式占用了cpu的时间,如果通过中断控制就可以解决这个问题,我们今天就来学习按键控制的中断方式. 二.原理分析 传统 ...
- [原创]java WEB学习笔记79:Hibernate学习之路--- 四种对象的状态,session核心方法:save()方法,persist()方法,get() 和 load() 方法,update()方法,saveOrUpdate() 方法,merge() 方法,delete() 方法,evict(),hibernate 调用存储过程,hibernate 与 触发器协同工作
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- spring源码学习之路---环境搭建(一)
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 最近已经开始了spring源 ...
- 白盒测试的学习之路----(五)TestNG的参数分离
之前的测试用例直接嵌套在代码中,不便于维护和测试设计,应该单独把测试用例放在excel内,然后程序从中读取数据到相应的接口内即可.使用ava程序对Microsoft Office格式档案读和写的功能提 ...
随机推荐
- Xcode 自定义代码段
看见老师敲程序时,快捷键一打,所需要的一整行代码都出来了,着实感觉到效率太高了. 看了几天,才反应过来为什么自己没有get这个方法呢,现在就整理一番,记录一下. 此处以@property(nonato ...
- Selenium2学习-032-WebUI自动化实战实例-030-JavaScript 在 Selenium 自动化中的应用实例之五(高亮标示元素)
在自动化脚本编写过程中,操作元素之前,需要对元素进行高亮显示(通过修改元素的边框样式),同时进行截图,以记录操作的元素对象.在实际应用中较为少见,通常用于演示,或者发生错误时的屏幕截图捕捉,用于错误报 ...
- JS-008-日期控件操作
此文以 js 操作 layDate 日期组件为示例演示,进行日期修改. 相应的演示示例脚本,敬请参阅之前的博文:HTML-001-日期组件 layDate 演示. 操作结果如下所示: 至此, JS-0 ...
- [转]获得 LayoutInflater 实例的三种方式
转自:http://www.cnblogs.com/androidez/archive/2013/07/01/3164729.html 获得 LayoutInflater 实例的三种方式 在实际开 ...
- Android HttpClient基本使用方法
GET 方式 //先将参数放入List,再对参数进行URL编码 List<BasicNameValuePair> params = new LinkedList<BasicNameV ...
- APICloud上有关iOS证书的一些问题
1. 苹果开发者账号及其区别: 苹果的开发者账号分为个人.公司和企业三类. 个人是99$一年,只能个人使用,可以提交应用到AppStore: 公司的也是99$,但是可以邀请其它成员一起使用,可以提交应 ...
- Java开发遇到的问题及解决方案
一.java.lang.OutOfMemoryError 问题:myeclipse 内存不足,又显示内存溢出等问题怎么回事?( java.lang.OutOfMemoryError: PermGen ...
- Cache封装类
代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...
- javascript学习之JSON
JSON本来是javascript的一个自己,后来已经成为了一种独立的数据格式,在web应用中运用极其广泛. 与javascript对象不同的是,JSON中的属性名任何时候都必须加双引号. javaS ...
- MFC项目中包含atlimage.h导致fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
因为要用到CImage所以包含了atlimage.h 报这个错误的话你只需要把atlimage.h放在afxwin.h的下方即可,不能让它在afxwin.h的上方