追求代码质量 junit4与testng的对比

追求代码质量 junit4与testng的对比

ID:6053504

大小:70.91 KB

页数:11页

时间:2018-01-01

追求代码质量 junit4与testng的对比_第1页
追求代码质量 junit4与testng的对比_第2页
追求代码质量 junit4与testng的对比_第3页
追求代码质量 junit4与testng的对比_第4页
追求代码质量 junit4与testng的对比_第5页
资源描述:

《追求代码质量 junit4与testng的对比》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、追求代码质量:JUnit4与TestNG的对比为什么TestNG框架依然是大规模测试的较好选择?AndrewGlover,总裁,StelligentIncorporated简介: JUnit4具有基于注释的新框架,它包含了TestNG一些最优异的特性。但这是否意味着JUnit4已经淘汰了TestNG?AndrewGlover探讨了这两种框架各自的独特之处,并阐述了TestNG独有的三种高级测试特性。查看本系列更多内容本文的标签: testng标记本文!发布日期: 2006年9月18日级别: 初级访问情况: 5734次浏览评论

2、: 0 (查看 

3、 添加评论-登录)平均分(9个评分)为本文评分经过长时间积极的开发之后,JUnit4.0于今年年初发布了。JUnit框架的某些最有趣的更改——特别是对于本专栏的读者来说——正是通过巧妙地使用注释实现的。除外观和风格方面的显著改进外,新框架的特性使测试用例的编制从结构规则中解放出来。使原来僵化的fixture模型更为灵活,有利于采取可配置程度更高的方法。因此,JUnit框架不再强求把每一项测试工作定义为一个名称以test开始的方法,并且现在可以只运行一次fixture,而不是每次测试都需要运行一次。虽然这些改

4、变令人欣慰,但JUnit4并不是第一个提供基于注释的灵活模型的Java™测试框架。在修改JUnit之前很久,TestNG就已建立为一个基于注释的框架。事实上,是TestNG在Java编程中率先实现了利用注释进行测试,这使它成为JUnit的有力竞争对手。然而,自从JUnit4发布后,很多开发者质疑:二者之间还有什么差别吗?在本月的专栏中,我将讨论TestNG不同于JUnit4的一些特性,并提议采用一些方法,使得这两个框架能继续互相补充,而不是互相竞争。您知道吗?在Ant中运行JUnit4测试比预计的要难得多。事实上,一些团队已

5、发现,惟一的解决方法是升级到Ant1.7。表面上的相似JUnit4和TestNG有一些共同的重要特性。这两个框架都让测试工作简单得令人吃惊(和愉快),给测试工作带来了便利。二者也都拥有活跃的社区,为主动开发提供支持,同时生成丰富的文档。提高代码质量要找到您最迫切问题的答案,请不要错过Andrew的论坛。两个框架的不同在于核心设计。JUnit一直是一个单元测试框架,也就是说,其构建目的是促进单个对象的测试,它确实能够极其有效地完成此类任务。而TestNG则是用来解决更高级别的测试问题,因此,它具有JUnit中所没有的一些特性。

6、一个简单的测试用例初看起来,JUnit4和TestNG中实现的测试非常相似。为了更好地理解我的意思,请看一下清单1中的代码。这是一个JUnit4测试,它有一个macro-fixture(即仅在所有测试运行前调用一次的fixture),这个macro-fixture由@BeforeClass属性表示:清单1.一个简单的JUnit4测试用例packagetest.com.acme.dona.dep;importstaticorg.junit.Assert.assertEquals;importstaticorg.junit.As

7、sert.assertNotNull;importorg.junit.BeforeClass;importorg.junit.Test;publicclassDependencyFinderTest{privatestaticDependencyFinderfinder;@BeforeClasspublicstaticvoidinit()throwsException{finder=newDependencyFinder();}@TestpublicvoidverifyDependencies()throwsExceptio

8、n{StringtargetClss="test.com.acme.dona.dep.DependencyFind";Filter[]filtr=newFilter[]{newRegexPackageFilter("java

9、junit

10、org")};Dependency[]deps=finder.findDependencies(targetClss,filtr);assertNotNull("depswasnull",deps);assertEquals("shouldbe5large",5,deps.length);}

11、}JUnit用户会立即注意到:这个类中没有了以前版本的JUnit中所要求的一些语法成分。这个类没有setUp()方法,也不对TestCase类进行扩展,甚至也没有哪个方法的名称以test开始。这个类还利用了Java5的一些特性,例如静态导入,很明显地,它还使用了注释。更多的灵活性在清单2中

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。