zoukankan      html  css  js  c++  java
  • 2.12 使用@DataProvider

         提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象 []的测试方法的参数列表中可以分配。该@Test 方法,希望从这个 DataProvider 的接收数据,需要使用一个 dataProvider 名称等于这个注解的名字。
     
     
    返回Object[][]
    (1)直接给定测试数据 
             @DataProvider( name= "user")
                        public Object[][] user(){
                        return new Object[][]{
                                  { "", "", "账号不能为空" },
                                  { "admin"," " ,"密码不能为空" },
                                  { " ", "a123456","账号不能为空" },
                                  { "ad ", "123456","账号“ad”不存在" },
                                  { "admin","12345" ,"密码错误" },
                        };
               }
    ----------
    @Test(dataProvider ="user" )
      public void testEcafeLogin(String userName,  String passWord, String expectText) {
                       loginPageClass loginpage = new loginPageClass();
                        loginpage. load();
                        loginpage. login( userName, passWord);
                        Assert. assertEquals(loginpage.getString(), expectText);
                        loginpage. logout();
              }     
     
    (2)或读取CSV文件

    @DataProvider(name="testData") //使用注解DataProvider,将数据集合命名为“testData”
             public Object[][] words() throws IOException{
             return getTestData("D:\testData.csv");

    }

              
       DataProvider返回的是一个Object的二维数组,二维数组中的每个一维数组都会传递给调用函数 @Test,作为参数使用
    (1)@Test标识的test method被执行的次数和object[][]包含的一维数组的个数是一致的
    (2)@Test标识的函数的参数个数,也和object内一维数组内的元素数是一致的。
     
       
     
     
     

    (1)在test方法中指明DataProvider:   如果DataProvider有指明name值,那么在test中使用name,

    @DataProvider(name="testData")

    .....

    @Test(dataProvider ="testData" )

    .....

    (2)在test方法中指明DataProvider:   如果没有名字,使用对应的方法名

    @DataProvider()

     public Object[][] user(){  }

    ....

    @Test(dataProvider ="user" )


     

    (3)另外如果DataProvider和Test方法不再同一类中,如下指明

    否则执行的时候会Skip该方法,有报错提示“......requires a @DataProvider named : dataprovider2”,并且数据类里的方法必须声明为static,不然也提取不了数据: 
     
    测试类:
     
    数据类:
     @DataProvider  

        public static Object[][] NoNameMethod(){ }  

     
  • 相关阅读:
    基础数据类型:列表
    基础数据类型(数字、布尔值、字符串)
    深浅copy
    集合
    逻辑运算
    poj 2287 Tian Ji -- The Horse Racing(贪心)
    hdu 1547 Bubble Shooter(深搜)
    hdu 1242 Rescue
    hdu 1175 连连看(深搜)
    hdu 2298 Toxophily(数学题)
  • 原文地址:https://www.cnblogs.com/ericazy/p/6961931.html
Copyright © 2011-2022 走看看