TestNG中的DataProvider

来源:互联网 发布:美图秀秀怎么p淘宝长图 编辑:程序博客网 时间:2024/05/22 10:30

@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("删除数据失败");   }  }}


0 0
原创粉丝点击