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
策略:一般我们会在标有@Factory注解的方法中对测试类进行调用,这时TestNg会自动调用测试类中带有@Test注解的方法
配置文件:只需要配置带有@Factory注解的类即可
@Factory必须放在一个返回对象数组的顶部,所有的这些对象都包含测试类的实例,testng会确保@Factory只被调用一次。
@Factory方法是首先被调用的,在@Test方法和配置方法之前,只有当所有的@Factory方法被调用之后,testng才开始执行配置和测试方法。
@Factory允许在运行时动态测试。
简单的使用:
输出结果会:
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最大的好处就是可以在初始化的时候将参数传给测试类:
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也是属于测试整体循环的类型
使用@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
相关文章推荐
- 多个物体透明度缓冲
- 【优波尔】JavaScript的笔记 (1) 简介 用法 输出 语法
- codeforces 525C Ilya and Sticks
- C++字符串旋转3种方法实现
- 算法导论14(数据结构的扩张)
- C#面向对象编程练习
- Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念?
- 浏览器的兼容性问题实质是CSS的兼容性问题,不是Html的兼容性问题
- 浏览器的兼容性问题实质是CSS的兼容性问题,不是Html的兼容问题
- Codeforces Round #305 (Div. 2) E题(数论+容斥原理)
- String类
- 用Java实现了MySql的jdbc
- 最大值最小化
- oc中的点语法讲解
- 浏览器的兼容性问题实质是CSS的兼容性问题
- Hadoop(一)之Hadoop安装的坑爹经历
- 昨日今日大盘下跌分析
- C 初始化数组
- java中多线程笔记(二)
- Androidapi.JNI.Net.Wifi.hpp文件