快速业务通道

追求代码质量 - JUnit 4与TestNG的对比 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
.tester.setFormElement("username", "admin");   this.tester.setFormElement("password", "admin");   this.tester.submit();   this.tester.assertTextPresent("Logged in as admin");   }   @Test (dependsOnMethods = {"verifyLogIn"})   public void verifyAccountInfo() {   this.tester.clickLinkWithText("History", 0);   this.tester.assertTextPresent("GTG Data Feed");   } }

在清单 3 中定义了两个测试:一个验证登录,另一个验证账户信息。请注意 ,通过使用 Test 注释的 dependsOnMethods = {"verifyLogIn"} 子句, verifyAccountInfo 测试指定了它依赖 verifyLogIn() 方法。

通过 TestNG 的 Eclipse 插件(例如)运行该测试时,如果 verifyLogIn 测试失败,TestNG 将直接跳过 verifyAccountInfo 测试,请参见图 1:

图 1. 在 TestNG 中跳过的测试

对于大型测试套件,TestNG 这种不标记为失败,而只是跳过的处理方法可以 减轻很多压力。您的团队可以集中精力查找为什么百分之五十的测试套件被跳过 ,而不是去找百分之五十的测试套件失败的原因!更有利的是,TestNG 采取了 只重新运行失败测试的机制,这使它的依赖性测试设置更为完善。

追求代码质量 - JUnit 4与TestNG的对比(4)

时间:2010-12-11 IBM Andrew Glover

失败和重运行

在大型测试套件中,这种重新运行失败测试的能力显得尤为方便。这是 TestNG 独有的一个特性。在 JUnit 4 中,如果测试套件包括 1000 项测试,其 中 3 项失败,很可能就会迫使您重新运行整个测试套件(修改错误以后)。不 用说,这样的工作可能会耗费几个小时。

一旦 TestNG 中出现失败,它就会创建一个 XML 配置文件,对失败的测试加 以说明。如果利用这个文件执行 TestNG 运行程序,TestNG 就只 运行失败的测 试。所以,在前面的例子里,您只需重新运行那三个失败的测试,而不是整个测 试套件。

实际上,您可以通过清单 2 中的 Web 测试的例子自己看到这点。 verifyLogIn() 方法失败时,TestNG 自动创建一个 testng-failed.xml 文件。 该文件将成为如清单 4 所示的替代性测试套件:

清单 4. 失败测试的 XML 文件

<!DOCTYPE suite SYSTEM  "http://testng.org/testng-1.0.dtd"> <suite thread-count="5" verbose="1" name="Failed suite  [HistoryTesting]"      parallel="false" annotations="JDK5">   <test name="test.com.acme.ceg.AccountHistoryTest(failed)"  junit="false">   <classes>    <class name="test.com.acme.ceg.AccountHistoryTest">    <methods>     <include name="verifyLogIn"/>    </methods>    </class>   </classes>   </test> </suite>

运行小的测试套件时,这个特性似乎没什么大不了。但是如果您的测试套件 规模较大,您很快就会体会到它的好处。

参数化测试

TestNG 中另一个有趣的特性是参数化测试。在 JUnit 中,如果您想改变某 个受测方法的参数组,就只能给每个 不同的参数组编写一个测试用例。多数情 况下,这不会带来太多麻烦。然而,我们有时会碰到一些情况,对其中的业务逻 辑,需要运行的测试数目变化范围很大。

在这样的情况下,使用 JUnit 的测试人员往往会转而使用 FIT 这样的框架 ,因为这样就可以用表格数据驱动测试。但是 TestNG 提供了开箱即用的类似特 性。通过在 TestN

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号