- 通过 @Parameters 实现参数化
目录如下:
DataProviderTest.java 代码如下:
package com.testng.cn; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; public class DataProviderTest { @Test @Parameters({"add1","add2","result"}) public void testAdd1(int add1, int add2, int result){ assertEquals(add1+ add2, result); } }
testng.xml配置文件如下:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="测试套件"> <test name="简单测试"> <parameter name="add1" value="3"/> <parameter name="add2" value="2"/> <parameter name="result" value="5"/> <classes> <class name="com.testng.cn.DataProviderTest" /> </classes> </test> </suite>
- <parameter.../> 定义测试数据
- name 定义数据的名字, 在测试用例中通过该名字来获取对应的 vlaue。
- o value 定义测试数据, 通过对应的 name 来获取该值。
运行结果如下:
- 通过 @DataProvider 实现参数化
DataProviderTest.java 代码如下:
package com.testng.cn; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; public class DataProviderTest { // 定义对象数组 @DataProvider(name = "add") public Object[][] Users() { return new Object[][] { { 3, 2, 5 }, { 2, 2, 4 }, { 3, 3, 6 }, }; } @Test(dataProvider="add") public void testAdd2(int add1, int add2, int result){ assertEquals(add1+add2, result); } }
@DataProvider 定义对象数组, 数组的名称为: add 。
在 testAdd2() 中通过 dataProvider="add" 调用定义的对象数组, 并通过参数获取相应的测试数据。
执行结果如下: