zoukankan      html  css  js  c++  java
  • TestNG中的数据源DataProvider概述

    在上一篇文章中,我们知道带参数的测试方法,可以在testng.xml配置文件中为其参数赋值。但是那只适用于初始值简单且确切的情况。

    对于初始值是复杂的对象,或者初始值是执行过程中生成的情况,就只能使用这里的数据源@DataProvider。

    使用TestNG中的数据源@DataProvider,所有的工作都在测试类中完成。具体过程分为两个步骤,第一步是定义数据源,第二步是在测试方法中引用数据源。

    1.在测试类中定义数据源

    在测试类中定义数据源就是提供一个生成数据源的方法,该方法通过@DataProvider声明一个唯一的名称。另外,生成数据源的方法必须返回Object[][]类型(或者Iterator<Object[]>),即复杂对象的数组。示例如下:

    @DataProvider(name = "test1")  
    public Object[][] createData1() {  
     return new Object[][] {  
       { "Cedric", new Integer(36) },  
       { "Anne", new Integer(37)},  
     };  
    } 

    该数据源的名称为test1,可供测试方法直接引用。

    该数据源中的复杂对象包含两个属性,第一个属性是字符串类型,第二个属性是整型。那么在引用该数据源的测试方法中,就应该有两个对应类型的参数。

    补充:如果引用数据源的测试方法是在另一个测试类中定义的,为了保证数据源的就绪,生成数据源的方法必须定义为static的,示例如下:

    @DataProvider(name = "create")  
    public static Object[][] createData() {  
      return new Object[][] {  
        new Object[] { new Integer(42) }  
      };  
    }  

    2.在测试方法中引用数据源

    在测试方法中通过数据源的名称引用数据源,示例如下:

    @Test(dataProvider = "test1")  
    public void verifyData1(String n1, Integer n2) {  
     System.out.println(n1 + " " + n2);  
    } 

    补充:如果被引用数据源的在另一个测试类中定义的,还需要指明其所在测试类,示例如下:

    @Test(dataProvider = "create", dataProviderClass = StaticProvider.class)  
    public void test(Integer n) {  
      // ...  
    }  
  • 相关阅读:
    Python的优点和缺点
    如何在sed中使用变量方法及其简单
    shell脚本练习,创建数据文件注册用户并将用户信息存入文件内,用于模拟登录时使用
    shell脚本常用参数与格式
    运维方向和运维需要掌握的基本面
    linux系统awk命令精解
    数组去重方式
    原生js封装cookie获取、设置及删除
    sublime 浏览器快捷键设置
    background-image实现border效果及多图png如何实现background-size为原图一半
  • 原文地址:https://www.cnblogs.com/amy7758/p/6650296.html
Copyright © 2011-2022 走看看