追求代码质量 - JUnit 4与TestNG的对比 - 编程入门网
.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 文件
运行小的测试套件时,这个特性似乎没什么大不了。但是如果您的测试套件 规模较大,您很快就会体会到它的好处。 参数化测试 TestNG 中另一个有趣的特性是参数化测试。在 JUnit 中,如果您想改变某 个受测方法的参数组,就只能给每个 不同的参数组编写一个测试用例。多数情 况下,这不会带来太多麻烦。然而,我们有时会碰到一些情况,对其中的业务逻 辑,需要运行的测试数目变化范围很大。 在这样的情况下,使用 JUnit 的测试人员往往会转而使用 FIT 这样的框架 ,因为这样就可以用表格数据驱动测试。但是 TestNG 提供了开箱即用的类似特 性。通过在 TestN |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |