• 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) {  
      // ...  
    }  
  • 相关阅读:
    Protected和Default的区别
    将数组中负数放在正数前面
    java.io包和杯子测楼
    hadoop基础
    极限编程和JUnit
    接口和抽象类
    C# 中窗口AutoScaleMode属性
    计算机的自启动管理
    labview中的移位寄存器、循环隧道,自动索引隧道的区别
    发现C#winform编程中不常用的控件(一)<FlowLayoutPanel控件><拆分器控件Splitcontainer >
  • 原文地址:https://www.cnblogs.com/amy7758/p/6650296.html
Copyright © 2020-2023  润新知