TestNG系列-第五章 测试方法、测试类和测试分组(续4)-工厂
2016-11-14 19:29
519 查看
8 工厂们(Factories)
工厂们允许动态创建测试。比如:假设我们想要创建一个方法,该方法需要使用不同的值访问网站的几次网页。
xml配置
这种情况很快会变得无法管理,这种情况下,我们应该使用工厂(factory):
新的测试类如下:
在testng.xml中紧紧需要配置包含工厂方法的类即可。因为测试实例本身会在运行的时候被创建:
<class name="WebTestFactory" />
工厂方法可以接受像@test和@Before/After这样的参数,必须返回object[]。返回的对象可以任何类,且甚至不用包含TestNG的注解。
工厂也可以和数据提供者一起使用,可以通过将注解@Factory放在正常方法或者构造方法上。下面是一个构造方法的例子:
工厂们允许动态创建测试。比如:假设我们想要创建一个方法,该方法需要使用不同的值访问网站的几次网页。
public class TestWebServer { @Test(parameters = { "number-of-times" }) public void accessPage(int numberOfTimes) { while (numberOfTimes-- > 0) { // access the web page } } }
xml配置
<test name="T1"> <parameter name="number-of-times" value="10"/> <class name="TestWebServer"/> </test>
<test name="T2"> <parameter name="number-of-times" value="20"/> <class name="TestWebServer"/> </test>
<test name="T3"> <parameter name="number-of-times" value="30"/> <class name="TestWebServer"/> </test>
这种情况很快会变得无法管理,这种情况下,我们应该使用工厂(factory):
publicclassWebTestFactory{ @FactorypublicObject[]createInstances(){ Object[]result=newObject[10];for(inti=0;i<10;i++){ result[i]=newWebTest(i*10); }returnresult; } }
新的测试类如下:
publicclassWebTest{ privateintm_numberOfTimes;publicWebTest(intnumberOfTimes){ m_numberOfTimes=numberOfTimes; }@TestpublicvoidtestServer(){ for(inti=0;i<m_numberOfTimes;i++){ //accessthewebpage } } }
在testng.xml中紧紧需要配置包含工厂方法的类即可。因为测试实例本身会在运行的时候被创建:
<class name="WebTestFactory" />
工厂方法可以接受像@test和@Before/After这样的参数,必须返回object[]。返回的对象可以任何类,且甚至不用包含TestNG的注解。
工厂也可以和数据提供者一起使用,可以通过将注解@Factory放在正常方法或者构造方法上。下面是一个构造方法的例子:
@Factory(dataProvider="dp")publicFactoryDataProviderSampleTest(intn){ super(n); }@DataProviderstaticpublicObject[][]dp(){ returnnewObject[][]{ newObject[]{ 41 }, newObject[]{ 42 }, }; }
相关文章推荐
- TestNG系列-第五章 测试方法、测试类和测试分组(续5)-9类级别注解、并发、失败情况
- TestNG系列-第五章 测试方法、测试类和测试分组
- TestNG系列-第五章 测试方法、测试类和测试分组(续10)-监听方法调用和改变测试集的测试
- TestNG系列-第五章 测试方法、测试类和测试分组(续2)-参数
- TestNG系列-第五章 测试方法、测试类和测试分组(续9)-依赖注入
- TestNG系列-第五章 测试方法、测试类和测试分组(续1)
- TestNG系列-第五章 测试方法、测试类和测试分组(续6)-代码运行TestNG和BeanShell
- TestNG系列-第五章 测试方法、测试类和测试分组(续7)-注解变形器和方法拦截器
- TestNG系列-第五章 测试方法、测试类和测试分组(续3)-依赖关系
- TestNG系列-第五章 测试方法、测试类和测试分组(续8)-监听器
- TestNG·四 测试方法之工厂
- TestNG指南5-测试方法、测试类与测试组
- 【译】TestNG官方文档中文版(08)—— 测试方法、测试类和测试组(5.13-5.20)
- 【译】TestNG官方文档中文版(06)—— 测试方法、测试类和测试组(5.5-5.6)
- TestNG 四 测试方法之工厂
- 【译】TestNG官方文档中文版(07)—— 测试方法、测试类和测试组(5.7-5.12)
- TestNG官方文档中文版(05)—— 测试方法、测试类和测试组
- 【译】TestNG官方文档中文版(08)—— 测试方法、测试类和测试组
- TestNG 四 测试方法之工厂
- 【译】TestNG官方文档中文版(05)—— 测试方法、测试类和测试组(5.1-5.4)