@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
数据提供者返回一个二维的对象数组,每一行都对应一次测试方法的调用。