当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

追求代码质量 - JUnit 4与TestNG的对比[Java编程]

赞助商链接



  本文“追求代码质量 - JUnit 4与TestNG的对比[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

经太长时间主动的开辟之后,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 有一些共同的重要特点.这两个框架都让测试工作 简单得令人吃惊(和高兴),给测试工作带来了便利.二者也都拥有活泼的社区 ,为主动开辟供应支持,同时生成丰富的文档.

两个框架的差别在于核 心计划.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")};

   Dependency[] deps =
    finder.findDependencies(targetClss, filtr);

   assertNotNull("deps was null", deps);
   assertEquals("should be 5 large", 5, deps.length);
  }
}

JUnit 用户会当即注意到:这个类中没有了从前版本的 JUnit 中所要求的一 些语法成份.这个类没有 setUp() 办法,也不对 TestCase 类举行扩大,乃至 也没有哪个办法的名称以 test 开始.这个类还操纵了 Java 5 的一些特点,例 如静态导入,很明显地,它还利用了注释.


  以上是“追求代码质量 - JUnit 4与TestNG的对比[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 追求代码质量 - 操纵TestNG-Abbot实现自动化GUI测试
  • 追求代码质量 - 可反复的系统测试
  • 追求代码质量 - 顺服复杂的冗长代码
  • <b>追求代码质量 - 测试Struts遗留的操纵程序</b>
  • 追求代码质量 - 谨防精密耦合!
  • 追求代码质量 - 亲身体验行为驱动开辟
  • 追求代码质量 - 通过测试分类实现矫捷构建
  • 追求代码质量 - JUnit 4与TestNG的对比
  • 追求代码质量 - 用代码器量举行重构
  • 追求代码质量 - 操纵Selenium和TestNG举行编程式测试
  • 追求代码质量 - 用JUnitPerf举行性能测试
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .