您的位置:首页 > 其它

testNG中@Factory详解

2015-05-29 20:17 218 查看
@Factory注解从字面意思上来讲就是采用工厂的方法来创建测试数据并配合完成测试,其主要应对的场景是:对于某一个测试用例或方法,我们需要输入多个测试数据进行测试,并且这些测试数据可以是有一定关系(可以通过代码控制),此时,我们就可以把自动化或者手动测试时的遇到的只因测试数据不同的多个测试用例合并成一个测试用例,来进行更方便和快捷的测试。

策略:一般我们会在标有@Factory注解的方法中对测试类进行调用,这时TestNg会自动调用测试类中带有@Test注解的方法

配置文件:只需要配置带有@Factory注解的类即可

@Factory必须放在一个返回对象数组的顶部,所有的这些对象都包含测试类的实例,testng会确保@Factory只被调用一次。

@Factory方法是首先被调用的,在@Test方法和配置方法之前,只有当所有的@Factory方法被调用之后,testng才开始执行配置和测试方法。

@Factory允许在运行时动态测试。

简单的使用:

SimpleTestFactory工厂类,在带有@Factory注解的方法中调用被执行的测试类,TestNg会自动调用被执行类中带有@Test注解的方法被执行的测试类为:SimpleTestFactory。

输出结果会:

simple test one

simple test one

simple test two

simple test two

PASSED: simpleTest1

PASSED: simpleTest1

PASSED: simpleTest2

PASSED: simpleTest2

===============================================

Default test

Tests run: 4, Failures: 0, Skips: 0

===============================================

由以上可知所有的test方法都被调用了。

使用@Factory最大的好处就是可以在初始化的时候将参数传给测试类:

运行SimpleTestFactory,可以得到以下输出:

Test method one output: 1

Test method one output: 11

Test method two output: 2

Test method two output: 12

PASSED: testMethodOne

PASSED: testMethodOne

PASSED: testMethodTwo

PASSED: testMethodTwo

可以知道测试中的每个方法都执行了两遍。

@Factory更适合于同一类型的参数变化性的测试,那么如果参数值没有特定的规律时,我们可以采用@Factory和@DataProvider相结合的方式进行测试

注意要点:测试方法将被一共执行的次数,因为@Factory本身就属于循环测试的类型,@DataProvider也是属于测试整体循环的类型

dataMethod会返回一个二维数组,维数表示迭代的次数,第二个值表示传入的参数。

使用@Factory的依赖测试,在会先执行所有的依赖方法,然后在执行测试方法。

结果:

Test method two with param values: 2

Test method two with param values: 1

Test method one with param values: 2

Test method one with param values: 1

PASSED: testMethodTwo

PASSED: testMethodTwo

PASSED: testMethodOne

PASSED: testMethodOne

​以上来源于:http://www.tuicool.com/articles/qAzYF3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: