`
biqing0427
  • 浏览: 57297 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Junit4 快速入门

    博客分类:
  • Test
阅读更多
Junit 概念,原理这里就不说了,有兴趣的朋友可以查阅相关资料,这篇文章主要是为了快速给大家介绍一下junit4的使用 以及与 junit3的区别,这里默认大家对junit3已经有些理解了。

下面就开始吧:

1.先写个简单的被测试类:

package test.junit;

public class BaseClass {

public String method() {

return this.getClass().getName();

}

}

2.对于这个类的unit测试,我们先看看在junit3中怎么进行测试的吧:

package test.junit;

import junit.framework.TestCase;//引入TestCase类

public class BaseClassTest extends TestCase {//类必须继承TestCase

BaseClass baseClass;

protected void setUp() throws Exception {

super.setUp();

baseClass = new BaseClass();

}

public void testMethod (){//测试方法必须以test开头

//通过assert*来检验

assertTrue(baseClass.method ().equals("test.junit.BaseClass"));

}

}

通过上面这个类,我们对junit3进行一些总结:

1. 必须引入类TestCase(import junit.framework.TestCase;),

2. 必须继承类TestCase (class BaseClassTest extends TestCase)

3. 测试方法必须以test开头(public void testMethod ())

4. 通过assert*方法来判断结果(assertTrue(baseClass.method ().equals("test.junit.BaseClass"));)。

3. 下面来了解一下junit4里面的内部关系吧,从这个图中你可以看出junit4的主要功能:

下面来看看我们今天的主角junit4是怎么处理这些的吧:

package test.junit;

import org.junit.Test;//引入Test类

import static org.junit.Assert.*;//引入Assert.*包

public class BaseClassTestNew {//这里不用再继承TestCase类了。

BaseClass baseClass = new BaseClass();

@Test public void methodOne(){//名字随便写,可以按你自己的爱好。但是必须以@Test开头

//还是以assert*来判断

assertTrue(baseClass.methodOne().equals("test.junit.BaseClass"));

}

}

看看多么的简洁,好像少了很多约束,下面通过和junit3的特性进行比较总结junit4的特性:

1.必须引入类TestCase(import junit.framework.TestCase;

è必须引入类Test(import org.junit.Test;),必须引入类(import static org.junit.Assert.*;)

2.必须继承类TestCase (class BaseClassTest extends TestCase)

è不需要

3.测试方法必须以test开头(public void testMethod ())

è不需要,但是类开始的时候要标记 @Test

4.通过assert*方法来判断结果(assertTrue(baseClass.method ().equals("test.junit.BaseClass"));)。

从上面的对比,可以看出junit4与junit3的区别在于:

去掉与类TestCase的偶联性,唯一触发TestCase的地方就是在@Test上。

4.以上就是junit4与junit3的区别与改进,下面再继续看看junit4有哪些新增加的功能吧:

1. @Before 和 @After

类似于init() 和destory(),可以将一些初始化和释放工作放到这里面,每个类都只有一个@Before 和 @After。为了实现这个功能,我们将测试类修改如下:

import org.junit.Test;

//新增加两个类

import org.junit.Before;

import org.junit.After;

import static org.junit.Assert.*;

public class BaseClassTestNew {

BaseClass baseClass ; //这里不用进行初始化

@Before public void runBeforeTest(){

baseClass = new BaseClass();

}

@Test public void method (){

assertTrue(baseClass.method ().equals("test.junit.BaseClass"));

}

@After public void runAfterTest(){

baseClass.teardownList();

baseClass = null;

}

}

@Before 方法会在 @Test 之前进行,相反 @After 会在所有方法运行完进行。

Junit4同时还支持 @BeforeClass 和 @AfterClass,原理一样,大家可以参考相关资料。

2.TimeOut 属性

Junit4支持timeout,运用如下:

a. 首先在被测试类中增加用于测试timeout的方法:

public void methodTimeOut() {

try {

Thread.sleep(50);//睡50秒

System.out.println("methodTimeOut");

} catch (InterruptedException e) {

}

}

b.看看怎么测试这个方法:

@Test(timeout=5)

public void methodTimeOut(){

baseClass.methodTimeOut();

}

1. 增加(timeout=5)这个设置项

2. 运行完 没有输出methodTimeOut,说明这个方法没有执行完,达到效果。

以上就是一部分junit4相关的东西,这里只是简单的入门,希望大家增加补充其他内容。
分享到:
评论
8 楼 dmewy 2008-01-25  
好!学习了.
7 楼 biqing0427 2008-01-25  
devworks: 谢谢
上班的时候写的,没有仔细检查 以后增加注意。
6 楼 devworks 2008-01-25  
biqing0427 写道

assertTrue(baseClass.method ().equals("test.junit.BaseClass"));

应该用assertEquals判等
biqing0427 写道

import static org.junit.Assert.*;//引入Assert.*包

引入的是Assert类的方法
biqing0427 写道

@Before 方法会在 @Test 之前进行,相反 @After 会在所有方法运行完进行。

@After在每个 @Test标注的方法后运行
biqing0427 写道

Thread.sleep(50);//睡50秒

不是50ms吗?
static void sleep(long millis)

http://www.ibm.com/developerworks/cn/java/j-junit4.html

5 楼 抛出异常的爱 2008-01-25  
biqing0427 写道
以后会注意代码格式,
这个blog刚开始用,有些格式还不是很会用。

引用
[方括号code="java"方括号][方括号/code方括号]

把方括号三个字去了
再写代码。。。。
4 楼 biqing0427 2008-01-25  
以后会注意代码格式,
这个blog刚开始用,有些格式还不是很会用。
3 楼 tedeyang 2008-01-25  
不错,有收获!
2 楼 jomper 2008-01-25  
可以 介绍点测试技巧,上面的文章 网上一堆堆的.
再说 annotation也是很早的东西了。
1 楼 xmlspy 2008-01-25  
没法看,
这代码格式

相关推荐

    Junit实例图解,Junit快速入门

    通过这样的实例,我们可以看到Junit4提供了一套简洁、强大的测试机制,使得开发者能够快速地编写和验证代码的正确性。对于Java开发而言,熟练掌握Junit是提高代码质量、保证软件可靠性的必备技能。在实际开发中,...

    Junit4单元测试入门例子

    Junit4作为Java领域最常用的单元测试框架,为开发者提供了方便、高效的测试工具。本文将深入探讨如何使用Junit4对名为Calculate的类进行单元测试,包括其加减乘除四个方法。 首先,我们需要了解Junit4的基本结构和...

    Junit4单元测试必备入门教程

    JUnit4单元测试必备入门教程 JUnit4概述 -------- JUnit4是JUnit框架有史以来最大的改进,其主要目标是利用Java5的Annotation特性简化测试用例的编写。Annotation是一种元数据,用于描述数据。在Java中可以用来和...

    使用junit测试ssh中的dao

    快速入门文档“JUnit4快速入门(已阅).doc”可能包含了如何安装JUnit,创建测试类,编写并运行测试用例的基础教程。 SSH框架中的DAO层通常负责与数据库交互,实现对持久化对象的操作,如增删查改。为了确保DAO层的...

    JUnit入门及简单使用

    使用JUnit4时,需要注意你的JDK版本应为1.5或更高,因为JUnit4依赖于Java的新特性。 JUnit的核心特点和结构包括: 1. 断言(Assertion):用于验证测试结果是否符合预期。 2. 测试套件(Test Suite):可以组织多个...

    JUnit初学者的快速入门

    JUnit 是Java 开源测试工具,最新版本的Eclipse 已经全面集成了JUnit4。本文用图示的方法,通过实例示范,一步一步地介绍如何在Eclispe 集成开发环境中使用JUnit。...本文共15页,适合作为JUnit初学者的快速入门教材。

    Junit入门练习代码

    本资源“Junit入门练习代码”旨在帮助初学者掌握JUnit的基本概念和使用方法,通过实践来加深理解。下面我们将深入探讨JUnit的相关知识点。 1. **JUnit简介**:JUnit是Java语言中的一个开源测试框架,由Ernst Leiss...

    JUnit4单元测试入门详解.pdf

    JUnit 4是该框架的一个重要版本,它利用Java 5的注解(Annotation)特性极大地简化了测试用例的编写过程。 在介绍JUnit 4之前,我们先来看一下JUnit 3的测试用例编写方式。在JUnit 3中,单元测试的编写需要遵循一定...

    Junit4学习笔记—入门篇.pdf

    希望这篇入门指南能够帮助初次接触JUnit的同学快速上手,为进一步深入学习打下坚实的基础。 ### 五、待继续学习的问题 1. **高级注解**:除了基础注解外,JUnit还提供了更多的高级注解,如`@Rule`、`@Category`等...

    Junit入门培训资料(断言相关)

    ### Junit入门培训资料(断言相关):深入解析与应用 #### Junit概述与重要性 JUnit,作为由Kent Beck和Erich Gamma共同开发的开源Java测试框架,已成为Java开发人员进行单元测试的首选工具。它不仅是Java编程语言...

    Junit使用入门培训(初级篇)1

    JUnit 使用入门培训(初级篇)1 JUnit 是 Java 语言中最流行的单元测试框架之一,它提供了许多功能强大且灵活的测试工具,帮助开发者编写高质量的代码。本文将从基础开始,指导读者如何使用 JUnit 进行单元测试。 ...

    dom4j_xpath_junitTest.zip

    《深入理解DOM4J、XPath与JUnit:快速入门与实战测试》 DOM4J、XPath和JUnit是Java开发中不可或缺的三个重要工具。DOM4J是处理XML文档的一个强大库,XPath则是XML路径语言,用于在XML文档中查找信息,而JUnit则是...

    JUnit入门,非常实用!

    4. 图形和文本测试运行器:JUnit 提供了图形界面和控制台界面,用户可以选择适合自己的方式查看测试结果。 JUnit 的核心体系结构包括几个关键组件: - Assert 类:包含各种断言方法。 - Test 接口:定义了测试的...

    JUnit入门资料合集

    这个压缩包文件包含了一系列关于JUnit的学习资源,帮助初学者快速掌握JUnit的使用和理解其内在工作原理。 首先,"JUnit.Recipes(JUnit菜谱)"很可能是JUnit测试用例的一个集合,它包含了各种常见测试场景的实例代码...

    JUnit入门笔记~

    这篇入门笔记将带你深入了解JUnit的基本概念、使用方法以及其在实际开发中的应用。 **一、JUnit简介** JUnit是一个开源的、基于Java的测试框架,它简化了对代码进行单元测试的过程。通过JUnit,开发者可以快速地...

    Junit 入门与提高实例代码

    这份资料旨在帮助初学者快速掌握Junit的使用,并通过实例提升测试技能,确保J2EE应用的质量和稳定性。下面将详细阐述Junit在J2EE测试中的重要性、基本概念以及如何利用它进行有效的单元测试。 首先,Junit是Java...

    JUnit教程工程代码实例+PDF下载.zip

    本教程旨在提供JUnit的详细介绍,并通过代码实例加深理解,帮助初学者快速掌握JUnit的基本用法和高级特性。 首先,JUnit的核心概念是测试用例(Test Case)。一个测试用例通常对应于被测试代码的一个功能,通过`@...

    JUnit5用户手册5.10中文版(个人翻译)

    4. 入门指南 要开始使用JUnit 5,开发者需要首先下载JUnit 5的artifact,然后将其添加到项目的依赖项中。接下来,开发者可以创建测试类和测试方法,并使用JUnit 5提供的各种注解来编写单元测试。 5. JUnit 5的特性...

Global site tag (gtag.js) - Google Analytics