• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

追求代码质量: JUnit 4 与 TestNG 的对比

发布: 2008-6-23 17:29 | 作者: 不详 | 来源: 测试时代编辑整理 | 查看: 258次 | 进入软件测试论坛讨论

领测软件测试网

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

虽然这些改变令人欣慰,但 JUnit 4 并不是第一个提供基于注释的灵活模型的 Java™ 测试框架。在修改 JUnit 之前很久,TestNG 就已建立为一个基于注释的框架。

事实上,是 TestNG 在 Java 编程中率先 实现了利用注释进行测试,这使它成为 JUnit 的有力竞争对手。然而,自从 JUnit 4 发布后,很多开发者质疑:二者之间还有什么差别吗?在本月的专栏中,我将讨论 TestNG 不同于 JUnit 4 的一些特性,并提议采用一些方法,使得这两个框架能继续互相补充,而不是互相竞争。

您知道吗?

在 Ant 中运行 JUnit 4 测试比预计的要难得多。事实上,一些团队已发现,惟一的解决方法是升级到 Ant 1.7。

表面上的相似

JUnit 4 和 TestNG 有一些共同的重要特性。这两个框架都让测试工作简单得令人吃惊(和愉快),给测试工作带来了便利。二者也都拥有活跃的社区,为主动开发提供支持,同时生成丰富的文档。

提高代码质量

要找到您最迫切问题的答案,请不要错过 Andrew 的 论坛。

两个框架的不同在于核心设计。JUnit 一直 是一个单元测试框架,也就是说,其构建目的是促进单个对象的测试,它确实能够极其有效地完成此类任务。而 TestNG 则是用来解决更高 级别的测试问题,因此,它具有 JUnit 中所没有的一些特性。

一个简单的测试用例

初看起来,JUnit 4 和 TestNG 中实现的测试非常相似。为了更好地理解我的意思,请看一下清单 1 中的代码。这是一个 JUnit 4 测试,它有一个 macro-fixture(即仅在所有测试运行前调用一次的 fixture),这个 macro-fixture 由 @BeforeClass 属性表示:


清单 1. 一个简单的 JUnit 4 测试用例

package test.com.acme.dona.dep;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.junit.BeforeClass;
import org.junit.Test;

public class DependencyFinderTest {
 private static DependencyFinder finder;

 @BeforeClass
 public static void init() throws Exception {
  finder = new DependencyFinder();
 }

 @Test
 public void verifyDependencies() 
  throws Exception {
   String targetClss = 
     "test.com.acme.dona.dep.DependencyFind";

   Filter[] filtr = new Filter[] { 
      new RegexPackageFilter("java|junit|org")};

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: junit Junit JUnit testng TestNG 代码 质量


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网