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(){ }  

     
  • 相关阅读:
    CPU,MPU,MCU,SOC,SOPC联系与差别
    中央处理器
    手机CPU
    手机CPU天梯图2018年5月最新版
    Ubuntu输入法切换问题
    说说C与汇编之间的互相联系(转)
    MDK972-EK开发板裸调试设置和裸机程序烧写(转)
    来,打一下五笔的字根表
    64位debian系统下安装inodeClient
    计算机网络——链路层协议
  • 原文地址:https://www.cnblogs.com/ericazy/p/6961931.html
Copyright © 2011-2022 走看看