时间:2021-05-20
前言
数据驱动测试是相同的测试脚本使用不同的测试数据执行,测试数据和测试行为完全分离。数据驱动是做自动化测试中很重要的一部分,数据源的方案也是百花八门了,比如利用外部文件,直接在@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()); } }上述的代码也是可以直接运行的,运行完后
结果如下:
利用上述方式最大的好处是把数据本身与持久化的对象放在一个地方了,且调用时,也很方便。
其实,利用外部文件的话,也可以数据对象持久化,只是原来的示例中我放在了一个Map中,同样可以把Map改为一个pojo对象,调用时也会很方便。
至于哪种方式好,大家自行的去体验,自行的去实现吧!
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
枚举特点1.用enum定义枚举类默认继承了java.lang.Enum类而不是继承了Object类。其中java.lang.Enum类实现了java.lang.
本文介绍了Java连接postgresql数据库的示例代码,分享给大家,具体如下:1.下载驱动jar下载地址:https://jdbc.postgresql.o
本文实例讲述了Java实现base64图片编码数据转换为本地图片的方法。分享给大家供大家参考,具体如下:项目中用到的把base64图片数据转为本地图片的函数/*
有两种方法:方法一:用java.util.Date类来实现,并结合java.text.DateFormat类来实现时间的格式化,看下面代码:复制代码代码如下:i
微信小程序标签传入数据在中用for循环传入多个成对不同数据时的实现方法。看下效果图:遍历实现方法:wxss省略:wxml中代码:{{item.navtext}}