`

JUnit 4教程

阅读更多

JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。

先简单解释一下什么是Annotation,这个单词一般是翻译成元数据。元数据是什么?元数据就是描述数据的数据。也就是说,这个东西在Java里面可以用来和public、static等关键字一样来修饰类名、方法名、变量名。修饰的作用描述这个数据是做什么用的,差不多和public描述这个数据是公有的一样。想具体了解可以看Core     Java2。废话不多说了,直接进入正题。

我们先看一下在JUnit 3中我们是怎样写一个单元测试的。比如下面一个类:

public class AddOperation {
       public int add(int x,int y){
           return x+y;
       }
}

 我们要测试add这个方法,我们写单元测试得这么写:

import junit.framework.TestCase;
import static org.junit.Assert.*;
public class AddOperationTest extends TestCase{

       public void setUp() throws Exception {
       }

       public void tearDown() throws Exception {
       }

       public void testAdd() {
           System.out.println("add");
           int x = 0;
           int y = 0;
           AddOperation instance = new AddOperation();
           int expResult = 0;
           int result = instance.add(x, y);
           assertEquals(expResult, result);
       }
}

 

可以看到上面的类使用了JDK5中的静态导入,这个相对来说就很简单,只要在import关键字后面加上static关键字,就可以把后面的类的static的变量和方法导入到这个类中,调用的时候和调用自己的方法没有任何区别。


我们可以看到上面那个单元测试有一些比较霸道的地方,表现在:
1.单元测试类必须继承自TestCase。
2.要测试的方法必须以test开头。

如果上面那个单元测试在JUnit 4中写就不会这么复杂。代码如下:

import junit.framework.TestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;

/**
*
* @author bean
*/
public class AddOperationTest extends TestCase{
    
       public AddOperationTest() {
       }

       @Before
       public void setUp() throws Exception {
       }

       @After
       public void tearDown() throws Exception {
       }

       @Test
       public void add() {
           System.out.println("add");
           int x = 0;
           int y = 0;
           AddOperation instance = new AddOperation();
           int expResult = 0;
           int result = instance.add(x, y);
           assertEquals(expResult, result);
       }
    
}

 

我们可以看到,采用Annotation的JUnit已经不会霸道的要求你必须继承自TestCase了,而且测试方法也不必以test开头了,只要以@Test元数据来描述即可。
从上面的例子可以看到在JUnit 4中还引入了一些其他的元数据,下面一一介绍:
@Before:
使用了该元数据的方法在每个测试方法执行之前都要执行一次。

@After:
使用了该元数据的方法在每个测试方法执行之后要执行一次。

注意:@Before和@After标示的方法只能各有一个。这个相当于取代了JUnit以前版本中的setUp和tearDown方法,当然你还可以继续叫这个名字,不过JUnit不会霸道的要求你这么做了。

@Test(expected=*.class)
在JUnit4.0之前,对错误的测试,我们只能通过fail来产生一个错误,并在try块里面assertTrue(true)来测试。现在,通过@Test元数据中的expected属性。expected属性的值是一个异常的类型

@Test(timeout=xxx):
该元数据传入了一个时间(毫秒)给测试方法,
如果测试方法在制定的时间之内没有运行完,则测试也失败。

@ignore:
该元数据标记的测试方法在测试中会被忽略。当测试的方法还没有实现,或者测试的方法已经过时,或者在某种条件下才能测试该方法(比如需要一个数据库联接,而在本地测试的时候,数据库并没有连接),那么使用该标签来标示这个方法。同时,你可以为该标签传递一个String的参数,来表明为什么会忽略这个测试方法。比如:@lgnore(“该方法还没有实现”),在执行的时候,仅会报告该方法没有实现,而不会运行测试方法。

分享到:
评论

相关推荐

    Junit4教程非常详尽

    JUnit4 教程详尽 JUnit4 是 JUnit 框架有史以来的最大改进,其主要目标便是利用 Java5 的 Annotation 特性简化测试用例的编写。下面是对 JUnit4 的详细介绍: 一、Annotation 简介 Annotation 是 Java5 中引入的...

    junit4教程(《Junit4初探》)

    **JUnit4教程——初探单元测试的艺术** JUnit4是Java编程语言中广泛使用的单元测试框架,它是Java开发者进行软件质量保证的重要工具。本教程将深入浅出地介绍JUnit4的基本概念、核心特性以及如何在实际项目中应用它...

    Junit4教程

    Junit4教程 Junit4是JUnit框架有史以来的最大改进,其中的主要目标便是利用Java5的Annotation特性简化测试用例的编写。在Junit4中,我们可以使用Annotation来描述测试用例,而不需要继承自TestCase类。下面我们将...

    JUnit4教程,初学者很有用

    这个“JUnit4教程”对于初学者来说是一个非常宝贵的资源,它可以帮助你快速掌握如何有效地测试你的Java代码。 在学习JUnit4时,首先你需要理解其核心概念。单元测试是对软件中的最小可测试单元进行检查,比如一个...

    junit-4-tutorials_code.zip Junit4教程源码

    《Junit4教程源码详解》 Junit 4 是一款广泛使用的Java单元测试框架,它为开发者提供了方便快捷的接口来编写和执行测试用例。本教程将深入解析Junit 4 的各项功能和使用技巧,通过源码分析帮助读者更深入地理解其...

    junit4教程

    ### JUnit4教程详解 #### 一、JUnit4概述与安装配置 JUnit是Java领域内最流行的单元测试框架之一,自其诞生以来,为软件开发人员提供了强大的测试能力,极大地促进了代码的质量提升和维护性。JUnit4作为JUnit的一...

    在eclipse中使用junit4教程

    jUnit4 在 Eclipse 中的使用教程 jUnit4 是 JUnit 框架有史以来的最大改进,其主要目标便是利用 Java5 的 Annotation 特性简化测试用例的编写。 Annotation 是一种元数据,描述数据的数据。在 Java 里面可以用来和 ...

    Junit4教程.pdf

    Junit4是该框架的一个重大更新,它引入了许多新特性,显著地简化了测试代码的编写,使得测试更加直观和高效。本文将详细探讨JUnit4的主要改进和关键知识点。 1. **Annotation的引入**: - 在JUnit4中,核心的改变...

    JUnit4教程

    @Test:这是JUnit4中最核心的元数据,用于标记测试方法。当运行测试时,JUnit会寻找所有带有@Test注解的方法并逐一执行。在JUnit3中,测试方法必须以“test”开头,而在JUnit4中,只需使用@Test注解即可。 @Ignore...

    junit4基础教程

    JUnit4是Java编程语言中最广泛使用的单元测试框架之一...希望这四个文档——"Junit4教程.doc"、"JUNIT基本教程.ppt"、"JUnit4培训.ppt"、"JUnit4培训 (1).ppt"能为你提供全面且实用的指导,让你快速上手JUnit4的使用。

    junit4教程junit4.5官方下载

    JUnit 4 是对JUnit框架的一次重大升级,特别是在引入了Java 5的注解(Annotation)特性后,极大地简化了测试用例的编写。注解是一种元数据,它提供了在程序源代码中嵌入元信息的方式,使得编译器或运行时环境能够...

Global site tag (gtag.js) - Google Analytics