数据驱动是做自动化测试中很重要的一部分,数据源的方案也是百花八门了,比如利用外部文件,直接在@DataProvider中写死等等,我们今天介绍一下利用enum来做数据源,先来看一下enum的写法:

public enum TestEnum {

	OK(200,"success"),
FAIL(300,"fail"); private int retCode; private String msg; private TestEnum(int retCode, String msg) {
this.retCode = retCode;
this.msg = msg;
} public int getRetCode() {
return retCode;
} public void setRetCode(int retCode) {
this.retCode = retCode;
} public String getMsg() {
return msg;
} public void setMsg(String msg) {
this.msg = msg;
} @Override
public String toString() {
return retCode+" "+msg;
} public static void main(String[] args) {
TestEnum[] vs = TestEnum.values();
System.out.println(vs[0].getMsg());
System.out.println(TestEnum.OK.getRetCode());
System.out.println(TestEnum.OK.getMsg());
System.out.println(TestEnum.valueOf("OK").getMsg());
} }

上述代码复制后,可直接运行!

上述代码可理解为有两组数据,每一组里面有两个数据,一个是retCode,一个是msg。现在把enum给加载到@DataProvider中去:

public class TestDataDemo {

	@DataProvider
public Object[][] dataProvider(){
TestEnum[] vs = TestEnum.values();
Object[][] obj = new Object[vs.length][];
for (int i = 0; i < vs.length; i++) {
obj[i] = new Object[]{vs[i]};
}
return obj;
} @Test(dataProvider="dataProvider")
public void testDemo(TestEnum te){
System.out.println(te.getRetCode());
System.out.println(te.getMsg());
} }

上述的代码也是可以直接运行的,运行完后,结果如下:

aaarticlea/png;base64,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" alt="" />

利用上述方式最大的好处是把数据本身与持久化的对象放在一个地方了,且调用时,也很方便。

其实,利用外部文件的话,也可以数据对象持久化,只是原来的示例中我放在了一个Map中,同样可以把Map改为一个pojo对象,调用时也会很方便。

至于哪种方式好,大家自行的去体验,自行的去实现吧!

JAVA利用enum结合testng做数据驱动示例的更多相关文章

  1. java分享第十八天( JAVA利用enum结合testng做数据驱动示例)

    数据驱动是做自动化测试中很重要的一部分,数据源的方案也是百花八门了,比如利用外部文件,直接在@DataProvider中写死等等,我们今天介绍一下利用enum来做数据源,先来看一下enum的写法: p ...

  2. JAVA 利用MyEclipse结合TestNG测试框架进行单元测试

    利用MyEclipse结合TestNG测试框架进行单元测试   by:授客 QQ:1033553122 测试环境 jdk1.8.0_121 myeclipse-10.0-offline-install ...

  3. java 接口测试,使用excel做数据驱动(二)

    承接上篇. 改变我们的测试驱动方式,灵活设置测试用例. 数据驱动测试 数据驱动测试的核心是: 测试数据与测试脚本分离,实现测试脚本参数化, 提高测试脚本的可重用性.在自动化功能测试中如果灵活使用数据源 ...

  4. java利用注解及反射做通用的入参校验

    一.原理: 1.做一个field注解,注解有两个参数:是否必填.toString之后的最大长度 2.对某个request类(或基类),使用注解标记某个字段的校验详情 3.通用的static方法,利用反 ...

  5. Excel作为数据源TesTNG做数据驱动完整代码

    说明:EXCEL 支持xls 和xlsx 俩种格式 : 已经过测试 ! package main.java; import org.apache.poi.ss.usermodel.*; import ...

  6. java结合testng,利用XML做数据源的数据驱动示例

    testng的功能很强大,利用@DataProvider可以做数据驱动,数据源文件可以是EXCEL,XML,YAML,甚至可以是TXT文本.在这以XML为例: 备注:@DataProvider的返回值 ...

  7. Testng之使用@DataProvider注解做数据驱动【转】

    原文:http://www.jianshu.com/p/8e333a0ec42a 前两天学了一下@DataProvider,今天有时间总结一下.testng很强大,提供了很多注解,其中利用@DataP ...

  8. Selenium+java - 使用csv文件做数据驱动

    前言 早期我们使用TestNG 来做数据驱动进行测试,测试数据是写在测试用例脚本中.这会使得测试脚本的维护工作量很大.因此我们可以将测试的数据和脚本分开. 而我们经常使用会使用csv文件来做为导出数据 ...

  9. Testng使用方法示例

    TestNG TestNG是一个测试框架,灵感来自JUnit和NUnit.但引入了下面这些新的功能,使它更强大和更容易使用. 注解: 可在任意大的线程池运行您的测试(所有方法在它们自己的线程内,一个线 ...

随机推荐

  1. 何为“精通Java”

    何为精通Java?本来Java仅仅是一门语言,但从应用技术的角度来看,精通Java是可以无边无际的.很可能你可以对James说:我精通J2EE.JVM.Java服务器.大数据等等一些和Java相关的应 ...

  2. 用JQuery的Ajax对表进行处理的一些小笔记

    --示例INSERT INTO 表名 ( 参数 )VALUES(@+参数),new SqlParameter("@参数", 值);注:配合SqlHelper使用. 一.Load() ...

  3. Memcached监听多个端口_同一台Windows机器中启动多个Memcached服务

    下载Memcached服务器 假设你解压在"C:\Program Files\memcached\memcached.exe" 那么可以如下创建多个服务监听不同的端口啦 监听第一个 ...

  4. Windows 8.1 应用再出发 - 几种新增控件(2)

    本篇我们接着来介绍Windows 8.1 的新增控件,分别是:Flyout.MenuFlyout.SettingsFlyout.Hub 和 Hyperlink. 1. Flyout Flyout被称为 ...

  5. UVALive 3942 Remember the Word(字典树+DP)

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  6. [Leetcode][JAVA] Triangled

    Triangle Given a triangle, find the minimum path sum from top to bottom. Each step you may move to a ...

  7. io多路复用,select,笔记

    一下代码,是摘自大王的博客,(http://www.cnblogs.com/alex3714/)我自己有加了些注释. 1 2 3 #_*_coding:utf-8_*_ 4 5 __author__ ...

  8. delphi常用快捷键(我自己经常使用的)

    代码编辑器: Home 回到当前行的头部 End 回到当前行的尾部 Insert 插入代码,覆盖后面的代码,(按回车无效), 再按撤回效果 Delete 删除 F1 双击一个单词后,按F1调用自带的L ...

  9. HibernateTemplate和HibernateDaoSupport(spring注入问题)

    HibernateTemplate HibernateTemplate是spring提供的一个就hibernate访问持久层技术而言.支持Dao组件的一个工具.HibernateTemplate提供持 ...

  10. 【Leetcode】【Hard】Merge Intervals

    Given a collection of intervals, merge all overlapping intervals. For example,Given [1,3],[2,6],[8,1 ...