testNg学习记录

@Dataprovider注解

2018-11-02  本文已影响33人  迷糊银儿

     数据提供者是指用@Dataprovider标注的方法。这个annotation只有一个字符串属性:name(它的名称)。若没有提供name,则数据提供者的名称就默认采用方法的名称;
     数据提供者返回一些java对象,这些对象将作为参数传递给被@Test标注的方法,从哪个数据提供者中获取参数是通过@Test annotation的dataprovider属性中指定。

数据提供者的目的

1.向测试方法传递任意数目的参数
2.根据需要,允许利用不同的参数集合对它的测试方法进行多次调用

//测试类
package testNG3;

import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

/**
* @Description: @Dataprovider注解的基本使用
* @Date: Created in 下午4:58 2018/11/5
*/
public class DataProviderTest {

   @BeforeTest
   public void beforeTest() {
       System.out.println("-----测试方法执行结果----");
   }

   @Test(dataProvider = "range-provider")
   public void testIsBoolean(int n, int lower, int upper, boolean expected) {
       System.out.println(n + "--" + lower + "--" + upper + "--" + expected);
   }

   @DataProvider(name = "range-provider")
   public Object[][] rangeData() {
       int lower = 5;
       int upper = 10;
       return new Object[][]{
               {lower - 1, lower, upper, false},
               {lower, lower, upper, true},
               {lower + 1, lower, upper, true},
               {upper, lower, upper, true},
               {upper + 1, lower, upper, false},
       };
   }
}
-----测试方法执行结果----
4--5--10--false
5--5--10--true
6--5--10--true
10--5--10--true
11--5--10--false

数据提供者返回一个二维的对象数组,每一行都对应一次测试方法的调用。

代码地址:https://gitee.com/neimenggudaxue/BasicTest

上一篇下一篇

猜你喜欢

热点阅读