@DataProvider
标记一个方法用于为测试方法提供数据。
被注释的方法必须返回Object[][], 其中每个Object[]可以指派为这个测试方法的参数列表。
从这个DataProvider接收数据@Test方法需要使用一个和当前注释相同名称的dataProvider名称 name 这个DataProvider的名称
demo:
最简单的用法
@DataProvider
public Object[][] dp() {
return new Object[][] {
new Object[] { 1, "a" },
new Object[] { 2, "b" },
};
}
@Test(dataProvider = "dp")
public void f(Integer n, String s) {
System.out.print("Success!");
}
第二种用法
@DataProvider
public Object[][] providerMethod(Method method) {
Object[][] result = null;
if(method.getName().equals("save_test")){
result= new Object[][]{
new Object[] { "192.9.100.81", 8043 },
};
}else if(method.getName().equals("delete_test")){
result= new Object[][]{
new Object[] { 1, "a" },
new Object[] { 2, "b" },
};
}
return result;
}
@BeforeTest
public void beforeTest() {
conn = DmsClient.getInstance().connect(config.DmsIP, config.DmsPort);
}
@AfterTest
public void afterTest() {
if(conn!=null){
conn.close();
conn = null;
}
}
@Test(dataProvider = "providerMethod")
public void save_test(String ip,Integer port) {
try{
conn.save(record);
System.out.print("保存数据成功");
}catch(Exception e){
System.out.print("保存数失败");
}
}
/*
* 删除一条记录
* delete(java.lang.Integer serverId,java.lang.Integer recordAddr)
*
* */
@Test(dataProvider = "providerMethod")
public void delete_test(String ip,int port) throws Exception{
try{
conn.delete(0, 0);
System.out.print("删除数据成功");
}catch(Exception e){
System.out.print("删除数据失败");
}
}
}