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

     
  • 相关阅读:
    Python 安装Twisted 提示python version 2.7 required,which was not found in the registry
    Openfire Strophe开发中文乱码问题
    css div 垂直居中
    How to create custom methods for use in spring security expression language annotations
    How to check “hasRole” in Java Code with Spring Security?
    Android 显示/隐藏 应用图标
    Android 当媒体变更后,通知其他应用重新扫描
    文件上传那些事儿
    专题:点滴Javascript
    主流动画实现方式总结
  • 原文地址:https://www.cnblogs.com/ericazy/p/6961931.html
Copyright © 2011-2022 走看看