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对象,调用时也会很方便。

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

  • 相关阅读:
    Java时间转换的一个特性
    JS处理数据四舍五入
    DataReader分页性能测试
    Java通过cal.get(Calendar.MONTH)比真实月份少一个月
    sqlserver split函数
    一个CLR20r3 错误解决。
    Devexpress dll搜集
    正则表达式:小括号、中括号、大括号的区别
    Android手机有的不显示Toast
    保存页面数据的场所----Hidden、ViewState、ControlState
  • 原文地址:https://www.cnblogs.com/longronglang/p/9992304.html
Copyright © 2011-2022 走看看