JUnit 4快速入门

发表于:2008-06-24来源:作者:点击数: 标签:junitJunitJUnit入门
JUnit 4是JUnit框架有史以来的最大改进,其主要目标便是利用 Java 5的Annotation特性简化 测试用例 的编写。让我们看看如何使用JUnit 4来进行Unit测试。 请注意:本文主要介绍JUnit 4的最新特性和用法,并不会讲解Unit测试的基

JUnit 4是JUnit框架有史以来的最大改进,其主要目标便是利用Java 5的Annotation特性简化测试用例的编写。让我们看看如何使用JUnit 4来进行Unit测试。

请注意:本文主要介绍JUnit 4的最新特性和用法,并不会讲解Unit测试的基础。如果你对JUnit框架还不熟悉,请先参考“Eclipse快速上手指南 (2) 使用JUnit测试”一文,学习如何编写JUnit测试。

我们使用的开发环境是Eclipse 3.2,它已经自带了JUnit 4.1,你需要将JUnit 4 Library添加到项目用到的Library中。另外,必须使用JDK 5.0或更高版本。

要在Eclipse环境之外运行JUnit,需要下载JUnit 4.1,具体请访问JUnit.org。

我们先看一个简单的Math类:

package com.javaeedev.junit4;
public class Math {

    public int abs(int value) {
        return value>=0 ? value : (-value);
    }

    public int div(int a, int b) {
        return a / b;
    }

    /**
     * BUG: if b less than 0!
     */
    public float exp(int a, int b) {
        float r = 1;
        for(int i=0; i<b; i++)
            r = r * a;
        return r;
    }
}
注意exp()方法是有Bug的,如果传入参数2, -1,则期待的返回值应为0.5F,但实际返回值为1.0F。

下面我们看看传统的JUnit的TestCase:

public class MathTest extends TestCase {

    public void setUp() { super.setUp(); }
    public void tearDown() { super.tearDown(); }

    public void testAbs() { assertTrue(true); }
    public void testDiv() {...}
    public void testExp() {...}

}
JUnit依赖反射来执行每个以test开头的方法。然而,在最新的JUnit 4中,由于有了Annotation的支持,我们的测试方法不需要再以testXxx标识了,而是写上一个@Test标注即可。例如:

原文转自:http://www.ltesting.net