• TestNG中的数据源DataProvider概述


    http://blog.csdn.net/taiyangdao/article/details/52141711

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

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

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

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

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

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. @DataProvider(name = "test1")  
    2. public Object[][] createData1() {  
    3.  return new Object[][] {  
    4.    { "Cedric", new Integer(36) },  
    5.    { "Anne", new Integer(37)},  
    6.  };  
    7. }  

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

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

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

    [java] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. @DataProvider(name = "create")  
    2. public static Object[][] createData() {  
    3.   return new Object[][] {  
    4.     new Object[] { new Integer(42) }  
    5.   };  
    6. }  



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

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

    [java] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. @Test(dataProvider = "test1")  
    2. public void verifyData1(String n1, Integer n2) {  
    3.  System.out.println(n1 + " " + n2);  
    4. }  



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

    [java] view plain copy
     
     在CODE上查看代码片派生到我的代码片
      1. @Test(dataProvider = "create", dataProviderClass = StaticProvider.class)  
      2. public void test(Integer n) {  
      3.   // ...  
      4. }  
  • 相关阅读:
    github pages 正确访问方式
    jetty 热部署
    mysql 距离函数
    通过微信公众号ID生成公众号的二维码
    SQL Server 数据库备份失败解决方法
    js 替换部分内容为星号
    mysql 允许远程登录
    nginx 跨域配置
    两台阿里云服务器之间数据迁移
    新装修入住常识有什么
  • 原文地址:https://www.cnblogs.com/robbinluobo/p/6256189.html
Copyright © 2020-2023  润新知