testng和junit有啥优缺点,该怎样选择( 二 )
Java
TestNG
XML文件用于运行套件测试。以下XML文件表示单元测试“TestNGTest1”和“TestNGTest2”将一起运行。\u0026lt;suite name="My test suite"\u0026gt; \u0026lt;test name="testing"\u0026gt; \u0026lt;classes\u0026gt; \u0026lt;class name="com.fsecure.demo.testng.TestNGTest1" /\u0026gt; \u0026lt;class name="com.fsecure.demo.testng.TestNGTest2" /\u0026gt; \u0026lt;/classes\u0026gt; \u0026lt;/test\u0026gt;\u0026lt;/suite\u0026gt;XML
TestNG可以做捆绑类测试,也可以捆绑方法测试。 凭借TestNG独特的“分组”概念,每种方法都可以与一个组合相结合,可以根据功能对测试进行分类(分组)。 例如,
下面是一个有四个方法的类,三个组(method1,method2和method3)@Test(groups="method1")public void testingMethod1() { System.out.println("Method - testingMethod1()");}@Test(groups="method2")public void testingMethod2() { System.out.println("Method - testingMethod2()");}@Test(groups="method1")public void testingMethod1_1() { System.out.println("Method - testingMethod1_1()");}@Test(groups="method4")public void testingMethod4() { System.out.println("Method - testingMethod4()");}Java
使用以下XML文件,可以仅使用组“method1”执行单元测试。\u0026lt;suite name="My test suite"\u0026gt; \u0026lt;test name="testing"\u0026gt; \u0026lt;groups\u0026gt; \u0026lt;run\u0026gt; \u0026lt;include name="method1"/\u0026gt; \u0026lt;/run\u0026gt; \u0026lt;/groups\u0026gt; \u0026lt;classes\u0026gt; \u0026lt;class name="com.fsecure.demo.testng.TestNGTest5_2_0" /\u0026gt; \u0026lt;/classes\u0026gt; \u0026lt;/test\u0026gt;\u0026lt;/suite\u0026gt;XML
通过“分组”测试概念,集成测试的可能性是无限制的。 例如,我们只能从所有单元测试类中测试“DatabaseFuntion”分组。
6. 参数化测试“参数化测试”是指单位测试参数值的变化。 此功能在JUnit 4和TestNG中都实现。 然而,两者都使用非常不同的方法来实现它。
JUnit 4
“@RunWith”和“@Parameter”用于提供单元测试的参数值,@Parameters必须返回List ,参数将作为参数传入类构造函数。@RunWith(value = https://www.zhihu.com/api/v4/questions/26026007/Parameterized.class)public class JunitTest6 { private int number; public JunitTest6(int number) { this.number = number; } @Parameters public static Collection/u0026lt;Object/u0026gt; data() { Object data = new Object { { 1 }, { 2 }, { 3 }, { 4 } }; return Arrays.asList(data); } @Test public void pushTest() { System.out.println("Parameterized Number is : " + number); }}Java
这里有很多限制,我们必须遵循“JUnit”的方式来声明参数,并且必须将参数传递给构造函数才能初始化类成员作为测试的参数值。参数类的返回类型为“List ”,数据已被限制为String或用于测试的原始类型值。
TestNG
XML文件或“@DataProvider”用于提供不同参数进行测试。
用于参数化测试的XML文件 –
只有“@Parameters”在需要参数测试的方法中声明,参数化数据将在TestNG的XML配置文件中提供。 通过这样做,我们可以使用不同数据集的单个测试用例,甚至获得不同的结果。 另外,即使是最终用户,QA还是QE都可以在XML文件中提供自己的数据进行测试。
推荐阅读
- 有啥方法,网站,项目可以自己练习计算广告学
- 100W——150W有啥好的车
- 最近有啥样的交友软件比较好玩呢
- 最近有啥好期待的网游玩
- 电子信息工程考研有啥偏软件类的专业可以报考
- 淘宝上有啥体验不错的假货,赝品或者山寨货?
- Java工程师和C++工程师在工作上有啥区别哪个更适合自身发展
- 端口到底是啥概念和ip之间有啥关系能形象+抽象的从技术角度描述一下吗
- QQ那个戴头盔吸烟的表情有啥来历
- 天猫买东西电话,家庭住址,姓名被泄露,阿里有啥措施
