@DataProvider 这个注解只有一个字符串属性:它的名字。
如果不提供名称,将会自动默认使用方法的名称。该方法返回一个对象数组。
1. 使用@DataProvider的简单例子:
public class TestParameterDataProvider {
@Test(dataProvider = "provideNumbers")
public void test(int number, int expected) {
Assert.assertEquals(number + 10, expected);
}
@DataProvider(name = "provideNumbers")
public Object[][] provideData() {
return new Object[][] {
{ 10, 20 },
{ 100, 110 },
{ 200, 210 }
};
}
}
PASSED: test(10, 20)
PASSED: test(100, 110)
PASSED: test(200, 210)
2. @DataProvider 使用整数和布尔参数。
创建一个java类。检查是否为素数
创建测试案例类
- 创建一个Java测试类 ParamTestWithDataProvider1.java.
- 定义方法primeNumbers(),其定义为DataProvider 使用注释。此方法返回的对象数组的数组。
- 测试方法testPrimeNumberChecker()添加到测试类中。此方法需要一个整数和布尔值作为输入参数。这个方法验证,如果传递的参数是一个素数。
- 添加注释 @Test(dataProvider = "test1") 到此方法。dataProvider的属性被映射到"test1".
public class ParamTestWithDataProvider1 {
private PrimeNumberChecker primeNumberChecker;
@BeforeMethod
public void initialize() {
primeNumberChecker = new PrimeNumberChecker();
}
@DataProvider(name = "test1")
public static Object[][] primeNumbers() {
return new Object[][] { { 2, true }, { 6, false }, { 19, true },
{ 22, false }, { 23, true } };
}
// This test will run 4 times since we have 5 parameters defined
@Test(dataProvider = "test1")
public void testPrimeNumberChecker(Integer inputNumber,
Boolean expectedResult) {
System.out.println(inputNumber + " " + expectedResult);
Assert.assertEquals(expectedResult,
primeNumberChecker.validate(inputNumber));
}
}
创建 TESTNG.XML
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<test name="test1">
<classes>
<class name="ParamTestWithDataProvider1" />
</classes>
</test>
</suite>
验证输出
引用
2 true
6 false
19 true
22 false
23 true
===============================================
Suite1
Total tests run: 5, Failures: 0, Skips: 0
===============================================
3. @DataProvider 传递对象作为参数。
创建一个Java类 Bean.java, 对象带有 get/set 方法
public class Bean {
private String val;
private int i;
public Bean(String val, int i){
this.val=val;
this.i=i;
}
public String getVal() {
return val;
}
public void setVal(String val) {
this.val = val;
}
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
}
创建测试案例类
- 创建一个Java测试类 ParamTestWithDataProvider2.java.
- 定义方法primeNumbers(),其定义为DataProvider使用注释。此方法返回的对象数组的数组。
- 添加测试类中测试方法TestMethod()。此方法需要对象的bean作为参数。
- 添加注释 @Test(dataProvider = "test1") 到此方法. dataProvider 属性被映射到 "test1".
public class ParamTestWithDataProvider2 {
@DataProvider(name = "test1")
public static Object[][] primeNumbers() {
return new Object[][] { { new Bean("hi I am the bean", 111) } };
}
@Test(dataProvider = "test1")
public void testMethod(Bean myBean) {
System.out.println(myBean.getVal() + " " + myBean.getI());
}
}
创建 TESTNG.XML
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<test name="test1">
<classes>
<class name="ParamTestWithDataProvider2" />
</classes>
</test>
</suite>
验证输出
引用
hi I am the bean 111
===============================================
Suite1
Total tests run: 1, Failures: 0, Skips: 0
===============================================
分享到:
相关推荐
QuickCheckNG是Java注释处理器,用于为一组QuickCheck生成器生成TestNG @DataProvider方法。 建造 mvn clean install 用法 在您的项目中包含一个名为*Generators.java的类,该类具有一组返回Generator实例的public ...
junit-dataprovider.zip,一个类似于testng的junit a的dataprovider runner,类似于junit的dataprovider runner,具有许多附加功能
junit-dataprovider:为JUnit提供一个类似于TestNG的dataprovider runner
junit-dataprovider 请查看此存储库页面以获取文档,用法示例和更多信息。 目录 贡献 非常欢迎您通过提供补丁/拉取请求做出贡献,有关详细信息,请参见 。
用法: git clone https://github.com/chillinPanda/testng-parameter-error.gitcd testng-parameter-errormvn test问题: 我在testng项目中针对这个问题开了一个新问题: : 输出: ParameterErrorDemoWiki.test:12 ...
支持数据驱动测试 (使用 @DataProvider)。 支持参数。 允许在隶属服务器上的分布式测试。 强大的执行模型 (再也不需要 TestSuite)。 被多数工具和插件支持(Eclipse, IDEA, Maven, etc...). 内嵌...
元模型示例在 TestNG DataProvider 中使用 Apache Incubator 示例。 使用 MetaModel 提供的 SQL 查询 API 来构建 DataProvider 方法返回的二维数组。 三个例子,包括: 从 Excel .XLS 或 .XLSX 文件读取数据的 Data...
测试数据供应商 此存储库包含TestNG DataProvider包装器(最新版本基于TestNG 7.0.0),有助于以更灵活的方式提供测试数据。 Common DataProvider强制使用非常老旧且丑陋的语法,该语法期望从DP方法的主体返回以下...
讲解单元测试的好处,注重实践,测试框架用的是TestNG。
当我们在使用TestNG时,发现它有一个非常好用的参数化功能。当你的测试用例有固定的参数和断言结果时,它可以相似用例的节省用例的个数。 例子如下: import static org.testng.Assert.... @DataProvider(name =
TestNG是一个Java的框架,所以第一个要求是JDK要安装在你的机器上。 系统要求 JDK 1.5或以上 内存 没有最低要求 磁盘空间 没有最低要求 操作系统 没有最低要求 步骤1 -验证Java安装在你的机器上 现在,打开...
Write robust unit and functional tests with the power of TestNG Overview Step-by-step guide to learn and practise any given feature Detailed understanding of the features and core concepts Learn ...
1.下载testNG 离线安装包【eclipse-testng离线包】,并解压。 2.将解压后的文件..\eclipse-testng离线包\features\目录下的文件夹org.testng.eclipse_6.11.0.201703011520放到eclipse安装路径下的features目录下 3....
eclipse-testng 离线包 xmlns:math="http://exslt.org/math" xmlns:testng="http://testng.org"> indent="yes" omit-xml-declaration="yes" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" ...
1. 将解压后的文件..\eclipse-testng离线包\features\org.testng.eclipse_6.9.9.201510270734 文件夹 放到 eclipse--》features目录下 2. 将解压后的文件..\eclipse-testng离线包\plugins\org.testng.eclipse_6.9...
1、testng测试报告模板BeautifulReport 2、testng.xml文件
testNG 自动化测试工具 工具类 testng-6.3.jar
testng-6.8.8
testNg介绍
testng-6.9-10 jar包