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

JUnit 4.0体验[Java编程]

赞助商链接



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

JUnit 是 Java 语言事实上的 尺度单元测试库.JUnit 4 是该库三年以来最具里程碑意义的一次公布.它的新特点主如果通过采取 Java 5 中的标志(annotation)而不是操纵子类、反射或命名机制来辨认测试,从而简化测试.在本文中,执着的代码测试人员 Elliotte Harold 以 JUnit 4 为例,具体介绍了如安在自己的工作中利用这个新框架.注意,本文假定读者具有 JUnit 的利用经验.

JUnit 由 Kent Beck 和 Erich Gamma 开辟,几近毫无疑问是迄今所开辟的最重要的第三方 Java 库.正如 Martin Fowler 所说,“在软件开辟范畴,历来就没有如此少的代码起到了如此重要的作用”.JUnit 指导并增长了测试的风行.由于 JUnit,Java 代码变得更结实,更坚固,bug 也比从前更少.JUnit(它本身的灵感来自 Smalltalk 的 SUnit)衍生了很多 xUnit 工具,将单元测试的上风利用于各种语言.nUnit (.NET)、pyUnit (Python)、CppUnit (C++)、dUnit (Delphi) 以及其他工具,影响了各种平台和语言上的程序员的测试工作.

但是,JUnit 仅仅是一个工具罢了.真正的上风来自于 JUnit 所采取的思惟和技术,而不是框架本身.单元测试、测试先行的编程和测试驱动的开辟并非都要在 JUnit 中实现,任何对比 GUI 的编程都必须用 Swing 来完成.JUnit 本身的最后一次更新差不多是三年从前了.固然它被证明比大大都框架更结实、更长期,但是也发现了 bug;而更重要的是,Java 不断在发展.Java 语言目前支持泛型、列举、可变长度参数列表和注释,这些特点为可重用的框架计划带来了新的大概.

JUnit 的阻滞不前并没有被那些想要废弃它的程序员所打败.挑衅者包含 Bill Venners 的 Artima SuiteRunner 以及 Cedric Beust 的 TestNG 等.这些库有一些可圈可点的特点,但是都没有到达 JUnit 的出名度和市场占据份额.它们都没有在诸如 Ant、Maven 或 Eclipse 之类的产品中具有遍及的开箱即用支持.所以 Beck 和 Gamma 着手开辟了一个新版本的 JUnit,它操纵 Java 5 的新特点(特别是注释)的上风,使得单元测试比起用最初的 JUnit 来说越发简单.用 Beck 的话来说,“JUnit 4 的主题是通过进一步简化 JUnit,鼓舞更多的开辟人员编写更多的测试.”JUnit 4 固然保持了与现有 JUnit 3.8 测试套件的向后兼容,但是它仍旧答应是自 JUnit 1.0 以来 Java 单元测试方面最庞大的改良.

 注意:该框架的改良是相当前沿的.固然 JUnit 4 的大表面很清楚,但是其细节仍旧可以改变.这意味着本文是对 JUnit 4 抢先看,而不是它的终究效果.

测试办法

从前全部版本的 JUnit 都利用命名约定和反射来定位测试.比方,下面的代码测试 1+1 等于 2:

import junit.framework.TestCase;
public class AdditionTest extends TestCase {
  private int x = 1;
  private int y = 1;
  public void testAddition() {
   int z = x + y; assertEquals(2, z);
  }
}

而在 JUnit 4 中,测试是由 @Test 注释来辨认的,以下所示:

import org.junit.Test;
import junit.framework.TestCase;
public class AdditionTest extends TestCase {
  private int x = 1;
  private int y = 1;
  @Test public void testAddition() {
   int z = x + y;
   assertEquals(2, z);
  }
}

利用注释的长处是不再需求将全部的办法命名为 testFoo()、testBar(),等等.比方,下面的办法也可以工作:

import org.junit.Test;
import junit.framework.TestCase;
public class AdditionTest extends TestCase {
  private int x = 1;
  private int y = 1;
  @Test public void additionTest() {
   int z = x + y; assertEquals(2, z);
  }
}

下面这个办法也一样可以工作:

import org.junit.Test;
import junit.framework.TestCase;
public class AdditionTest extends TestCase {
  private int x = 1;
  private int y = 1;
  @Test public void addition() {
   int z = x + y; assertEquals(2, z);
  }
}


  以上是“JUnit 4.0体验[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • JBuilder 2005单元测试之JUnit框架
  • 追求代码质量 - JUnit 4与TestNG的对比
  • 追求代码质量 - 用JUnitPerf举行性能测试
  • <b>Java开源测试工具JUnit简介</b>
  • JUnit 4.0体验
  • JUnit 4.4新特点
  • 用JUnit框架实现Java单元测试
  • JUNIT教程
  • JUnit入门及操纵
  • JUnit断言扩大
  • 操纵Ant+JUnit+Cobertura来实现代码覆盖自动测试
  • 操纵ant编译、运行junit以及查抄编码
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

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

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