JUnit及其相关的单元测试技术

发表于:2010-1-14 14:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:david20080309    来源:51Testing软件测试网采编

  在实际的工作中,很多项目都没有写单元测试用例。写单元测试用例常常是程序员十分厌倦的一个项目活动,很多人觉得没有必要、浪费时间。所有这些都是因为没有认识到测试的重要性:测试能够使我们尽量早的发现程序的bug,一个bug被隐藏的时间越长,修复这个bug的代价就越大。在《快速软件开发》一书中已引用了大量的研究数据指出:最后才修改一个bug的代价是在bug产生时修改它的代价的10倍。在现代软件开发过程中,不管是xp还是rup 都是十分重视单元测试,已经把单元测试作为贯穿整个开发周期的一项重要的开发活动。单元测试如此重要,那么怎样写好单元测试用例呢?这就需要了解 Junit及其相关的测试工具了。

  1.  Junit简介:

  1.1  内容摘要

  Junit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework),供Java开发人员编写单元测试之用。Junit测试是程序员测试,即所谓白盒测试。下面我们以一个简单的例子来介绍如何使用 Junit4同Junit3编写测试用例:

  先写个简单的被测试类:

public Class XXXX{

public String hello(){
    return "hello";
}

}

  对于这个类的用junit3编写测试用例:

import  junit.framework.TestCase;
public Class XXXXTest  extends TestCase{

      public void testHello(){
            asssertEqual(new XXXX().Hello(),"hello");
      }
}

  用junit4编写测试用例:

import static org.junit.framework.assertEqual;
import org.junit.Test;
public Class XXXXTest{
      @Test
      public void helloTest(){
              asssertEqual(new XXXX().Hello(),"hello");
      }
}

  从上面例子我们对Junit3和Junit4有了一个初步的印象,下面我们重点介绍Junit4与Junit3的主要区别。

  1.2  Junit4与Junit3的主要区别

  1.2.1  Junit4引入了java 5.0的注释技术:

  这两个版本最大的区别在JUnit3.x中测试必须继承 TestCase,并且每个方法名必须以test开头。比如:testMethod1()而在JUnit4.x中不必继承TestCase,采用了注解的方式。只要在测试的方法上加上注解@Test即可,从而不必再遵循以前的一些显式约定和反射定位测试;在JUnit4.x中如果继承了TestCase,注解就不起作用了。并且有很重要的一点就是在JUnit4.x中继承了TestCase后,在OutLine视图中测试单个方法时,结果整个类都run 了。还有一点就是,在3.x中需要实现setUp和tearDown方法,而在4.x中无需这样,可以自定义需要在测试前和测试后的方法,在方法前加上 @before,@after就可以了。所以在JUnit4.x不必继承TestCase用注解即可对单个方法进行测试。

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号