`
nlslzf
  • 浏览: 1045346 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JUnit4介绍及其快速使用

阅读更多

http://tech.it168.com/a2008/1231/261/000000261826_1.shtml

 

现在已经了解了JUnit3.8.1的使用和其基本的工作原理,JUnit 4是JUnit框架有史以来的最大改进,其主要目标便是利用Java 5的Annotation特性简化测试用例的编写。下面同样通过代码来学习一下:

  1.右击该类,选择 新建->JUnit测试用例,选择JUnit4,setUp和tearDown方法,点击下一步,选择需要测试的方法,JUnit会自动生成测试的代码框架(可以看到这个代码框架和上面的有较大的不同),手动添加自己的测试代码后如下:

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class HelloTest4 {        //这里不需要继承自TestCase

    private Hello hello;
    public HelloTest4()
    {
        super();
        System.out.println("a new test instance...");
    }
    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        System.out.println("call before all tests...");
    }

    @AfterClass
    public static void tearDownAfterClass() throws Exception {
        System.out.println("call after all tests... ");
    }
    @Before
    public void setUp() throws Exception {
        //这里不需要调用super.setUp()
        System.out.println("call before test...");
        hello=new Hello();
    }

    @After
    public void tearDown() throws Exception {
        //这里不需要调用super.tearDown()
        System.out.println("call after test... ");
    }

    @Test
    public void testAbs() {
        System.out.println("test the method abs()");
        assertEquals(16, hello.abs(16));
        assertEquals(11, hello.abs(-10));//在这里,会出现故障,应该把左边的参数改为10
        assertEquals(0, hello.abs(0));
    }

    @Test
    public void testDivision() {
        System.out.println("test the method division()");
        assertEquals(3D, hello.division(6, 2));
        assertEquals(6D, hello.division(6, 1));
        assertEquals(0D, hello.division(6, 0));//在这里,会出现故障(与3.8.1有些不同?)
    }

    //下面,并不是对JunitDemo类中成员函数的测试,只是演示JUnit的一些功能
    
    //测试是否会发生期望的异常
    @Test(expected=ArithmeticException.class)
    public void testDiv0() {
        System.out.println("test the method Div0()");
        double result=100/0;
    }
    
    //测试是否超时
    @Test(timeout=1)
    public void testLongTimeTask() 
    {
        System.out.println("test the method LongTimeTask()");
        double d = 0;
        for(int i=1; i<10000000; i++)
            d+=i;
    }
    
}

  2.运行该测试类,输出如下:

call before all tests...
a new test instance...
call before test...
test the method abs()
call after test...

a new test instance...
call before test...
test the method division()
call after test...

a new test instance...
call before test...
test the method Div0()
call after test...

a new test instance...
call before test...
test the method LongTimeTask()
call after test...

call after all tests...
  3.从上面的输出结果可以看出,JUnit的工作原理和以前的几乎还是没有变的,只是让用户使用更简单了当然有一个变化是3.8.1的所有测试实例是测试前全都创建好的,而JUnit4的测试实例是在每个测试前创建的。

  4.当JUnit4还有一个与以前很大的不同就是引入了@BeforeClass和@AfterClass(可以在选择setUp和tearDown的时候选择setUpBeforeClass()和tearDownAfterClass()),setUpBeforeClass()在所有测试前调用,tearDownAfterClass()在所有测试后调用,它们不同与setUp和tearDown,在整个测试过程中只会被调用一次,这是为了能在@BeforeClass中初始化一些昂贵的资源,例如数据库连接,然后执行所有的测试方法,最后在@AfterClass中释放资源。

  总结,这里只是对JUnit对class的单元测试作了简单的讨论,除此以外,JUnit还可以对JSP,Servlt,EJB等做单元测试。

分享到:
评论

相关推荐

    junit-4.12.jar下载

    让我们深入探讨一下JUnit 4.12及其相关文件。 首先,`junit-4.12.jar`是JUnit的核心库,包含了运行和编写单元测试所需的所有类和接口。使用这个库,开发者可以创建测试类,定义测试方法,并使用各种断言来检查程序...

    junit-4.10.jar及使用方法

    在本文中,我们将深入探讨JUnit 4.10及其使用方法,帮助你更好地理解和应用这个强大的测试工具。 首先,了解JUnit的基本概念。单元测试是对软件中的最小可测试部分——通常是一个函数、一个方法或者一个模块——...

    JUnit是什么?介绍

    4. **轻量级设计**:JUnit 体积小巧,易于理解和使用,没有复杂的配置或引导过程,使得开发者可以快速上手。 5. **良好的可扩展性**:JUnit 的设计遵循开闭原则,可以方便地扩展以适应各种不同类型的测试需求,如...

    JUnit3.8.1

    JUnit是Java编程语言中最常用的单元测试框架之一,主要用于软件开发过程中的测试,确保代码的正确性和稳定性。...尽管如此,对于学习测试基础或者维护旧项目时,理解JUnit 3.8.1及其工作原理仍然是很重要的。

    JUnit使用报告

    本报告将详细探讨JUnit的基本概念、使用方法及其在测试驱动开发(TDD)中的应用。 一、JUnit简介 JUnit是一个开源的、基于Java的测试框架,它使得开发者能够编写可重复执行的单元测试,以验证代码的功能正确性。JUnit...

    Junit4.12和依赖包

    例如,使用Maven或Gradle作为构建工具,它们可以从镜像站点或第三方库(如阿里云的Maven仓库)下载所需的Junit4.12及其依赖。在Maven的pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;junit &lt;artifactId&gt;junit ...

    JUnit4单元测试入门详解.pdf

    在介绍JUnit 4之前,我们先来看一下JUnit 3的测试用例编写方式。在JUnit 3中,单元测试的编写需要遵循一定的规则。例如,测试类需要继承自`TestCase`类,测试方法必须以`test`开头。这样的限制使得编写测试代码时...

    eclipse_springmvc_maven_mybstis3_junit4

    3. `src/test/java`: 存放测试代码,使用JUnit4编写,对项目中的功能进行单元测试。 4. `pom.xml`: Maven项目的配置文件,定义了项目的依赖、版本和构建过程。 这个项目作为一个Web应用的起点,可以帮助开发者快速...

    junit资源包.rar

    下面我们将深入探讨JUnit及其在软件开发中的应用。 JUnit是一个开源项目,最初由Ernst Klimpert和Kent Beck开发,现在由一个更大的开发者社区维护。它基于xUnit测试框架家族,为Java程序员提供了一种简洁的方式来...

    junit_1.3.jar.zip

    本文将围绕“junit_1.3.jar.zip”这个压缩包文件,详细阐述JUnit 1.3版本的核心功能及其在测试代码中的作用。 首先,"junit_1.3.jar.zip"是一个包含JUnit 1.3版本库的压缩文件,其中的核心组件是“junit-1.3.jar”...

    spring_maven_mybatis3_junit4

    下面将详细介绍这四个组件及其整合方式。 1. **SpringMVC**:SpringMVC是Spring框架的一部分,用于构建Web应用程序。它提供了模型-视图-控制器(MVC)架构,使开发者能够将业务逻辑、数据和用户界面分离。SpringMVC...

    JUnit_in_Action,_2nd_Edition.pdf

    - **第1章:JUnit入门**:介绍如何快速上手JUnit,包括环境搭建、第一个测试案例等。 - **第2章:探索JUnit**:深入探讨JUnit的核心功能和高级特性。 - **第3章:软件测试原则**:讲解软件测试的基本原理,帮助...

    软件测试junit4.10.jar包

    JUnit是Java编程语言中最流行的单元测试框架之一,尤其在版本4.10及其以后,它提供了强大的测试能力和丰富的功能,使得开发者能够更加高效地进行软件质量保障。本文将详细探讨JUnit4.10的关键特性、使用方法以及在...

    ANT結合實際項目、JUNIT4測試詳細配置文件(可作為模板使用)

    标题 "ANT结合实际项目、JUNIT4测试详细配置文件(可作为模板使用)" 暗示了这个压缩包文件包含了一个使用Apache Ant构建工具和JUnit4进行单元测试的配置实例。Apache Ant是一个广泛使用的Java项目构建系统,而JUnit...

    软件测试winrunner loadrunner junit

    下面将详细介绍这三个工具及其在软件测试中的应用。 1. WinRunner: WinRunner是由Mercury Interactive(现已被HP收购)开发的一种功能强大的自动化测试工具,主要用于GUI(图形用户界面)的测试。它采用“对象...

Global site tag (gtag.js) - Google Analytics