zoukankan      html  css  js  c++  java
  • JAVA利用enum结合testng做数据驱动示例

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

    public enum EnumData {
    
        PAY_RESERVE(1, "支付预约"),
        DIRECT_RESERVE(2, "直接预约"),
        BILL(3, "开单");
    
        EnumData(int resultCode, String resultMsg) {
            this.resultCode = resultCode;
            this.resultMsg = resultMsg;
        }
    
        private int resultCode;
        private String resultMsg;
    
        public int getResultCode() {
            return resultCode;
        }
    
        public String getResultMsg() {
            return resultMsg;
        }
    
    
    }

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

    import org.testng.annotations.DataProvider;
    import org.testng.annotations.Test;
    
    public class TestEnumData {
    
    
        @DataProvider
        public Object[][] enumDataMethod() {
            EnumData[] vs = EnumData.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 = "enumDataMethod")
        public void test(EnumData en) {
            System.out.println(en.getResultCode() + "	" + en.getResultMsg());
        }
    
    }

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

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

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

  • 相关阅读:
    Direct3D光与材质的颜色值
    Direct中灯光的注意事项
    DirectInput:poll轮询理解
    GetAsyncKeyState函数返回值
    关于PeekMessage中hwnd参数
    VS链接MySql需注意的一些问题(C/C++)
    Windows配置:环境变量是个什么玩意儿?
    项目中ofstream 打开当前文件夹下内容失败原因
    hdoj--2073--无限的路(数学规律)
    hdoj--1205--吃糖果(规律)
  • 原文地址:https://www.cnblogs.com/longronglang/p/9992304.html
Copyright © 2011-2022 走看看