博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TestNG中的运行时测试实例工厂详解
阅读量:4179 次
发布时间:2019-05-26

本文共 1136 字,大约阅读时间需要 3 分钟。

在前面的文章中,我们介绍了@Parameters标注,可以在运行时为测试方法设置参数。但是,对于一个测试类,只是因为测试方法的参数不同,就不得不在testng.xml中定义大量雷同的测试用例,这样的做法将很快导致测试规划的冗长,难以维护。

为此,TestNG还提供了测试实例的工厂机制,用到了@Factory标注。在这种工厂机制中,工厂类定义了一个使用@Factory标注声明的方法,该方法必须返回一个Object[]类型的数组,数组元素就是运行时生成的测试类的实例。这些测试类的实例往往采用不同的参数构造,因而可以执行不同的测试用例。

1.定义测试类

public class WebTest {  private int m_numberOfTimes;  public WebTest(int numberOfTimes) {    m_numberOfTimes = numberOfTimes;  }   @Test  public void testServer() {   for (int i = 0; i < m_numberOfTimes; i++) {     // access the web page    }  }
该测试类的构造带参数。

2.定义测试实例的工厂类

public class WebTestFactory {  @Factory  public Object[] createInstances() {   Object[] result = new Object[10];    for (int i = 0; i < 10; i++) {      result[i] = new WebTest(i * 10);//动态参数的测试实例    }    return result;  }}
只有一个创建测试实例的方法,由@Factory标注声明。

3.在testng.xml配置文件中使用测试工厂类

补充,作为构造测试实例的参数,还可以使用@DataProvider,示例如下:

public class FactoryDataProviderFactory {@Factory(dataProvider = "dp")public Object[] FactoryDataProviderSampleTest(int n) {  ...} @DataProvider(name = "dp")public static Object[][] dp() {  return new Object[][] {    new Object[] { 41 },    new Object[] { 42 },  };}}

转载地址:http://qslai.baihongyu.com/

你可能感兴趣的文章
沉浸式过山车,感受巨蚁数字心灵的激情
查看>>
沉浸式过山车,巨蚁数字带给您前所未有的科技体验
查看>>
质量好的自行车品牌有哪些辐轮王土拨鼠全球顶级自行车品牌排行榜
查看>>
htmlunit爬取js异步加载后的页面
查看>>
修改Linux系统locale设置
查看>>
linux网络无法连接问题
查看>>
linux 查看ip
查看>>
记录go数据库操作的bug——max_prepared_stmt_count,附分析过程
查看>>
go中map与xml互转
查看>>
java进程占用CPU过高
查看>>
CSDN-markdown编辑器
查看>>
拷贝整个目录到另一台服务器并排除log目录
查看>>
拜托,面试别再问我跳表了!
查看>>
linux驱动实例
查看>>
android ArrayList<String> 转 String[]
查看>>
RecyclerView baseadapter
查看>>
Android中应用程序如何获得系统签名权限
查看>>
MPAndroidChart 动态更新
查看>>
Recycler表格(excelPanel)
查看>>
android一行代码实现沉浸式布局效果
查看>>