zoukankan      html  css  js  c++  java
  • java分享第十八天( JAVA利用enum结合testng做数据驱动示例)


    数据驱动是做自动化测试中很重要的一部分,数据源的方案也是百花八门了,比如利用外部文件,直接在@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对象,调用时也会很方便。
    至于哪种方式好,大家自行的去体验,自行的去实现吧! 
  • 相关阅读:
    互联网协议
    TCP/IP协议三次握手_四次挥手
    nginx重定向rewrite
    创建第一个django工程
    Anaconda-用conda创建python虚拟环境
    数组
    StringBuilder
    杨辉三角
    数据类型和变量
    .net框架中的一些接口
  • 原文地址:https://www.cnblogs.com/tiancy/p/6069271.html
Copyright © 2011-2022 走看看