`
leon.s.kennedy
  • 浏览: 110549 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

JUnit4入门

 
阅读更多

 

什么是单元测试?

写了个类,要给别人用,会不会有Bug?怎么办?测试

用main方法测试好不好?不好

1.不能一起运行

2.大多数情况下需要人为的观察输出是否正确

 

为什么要进行单元测试?

重用测试,应付将来的实现的变化

提高士气,明确知道我的东西是没问题的

 

JUnit4 HelloWorld

1.new Project

2.建立类

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

3.建立testCase

创建一个新的Junit 4 Test Case,选择junit4,选择要测试的类,next

勾上要测试的方法,点finish

会提示是否要导入junit4的jar包,如果想使用MyEclipse自带的,点ok即可

之后会生成如下代码:

import static org.junit.Assert.*;

import org.junit.Test;

public class TTest {

 @Test
 public final void testAdd() {
  fail("Not yet implemented"); // TODO
 }

}

静态导入了Assert类的所有静态断言方法,fail()只是其中一种

修改下自动生成的testAdd()方法:

 @Test
 public final void testAdd() {
  int z = new T().add(3, 5);
  assertEquals(8, z);
 }

assertEquals(期望得到的值,实际的值),此时我们希望测试T类的add()方法, 3 + 5 是否等于8

之后,右键,Run as ,JUnit Test运行测试

JUnit4入门

左边的小窗口为JUnit,会看到一个绿色的“条”,则表示测试通过,这个方法没问题

现在我们修改testAdd()方法:

JUnit4入门
此时,z不等于9,左边的“条”就变成红色,表示不通过

 

还可以写多个断言一起进行测试,其中每个断言方法,
都重载了一个(String message) 代表如果出错了,会提示什么消息

 

@Test
 public final void testAdd() {
  int z = new T().add(3, 5);
  assertEquals(8, z);
  assertTrue("z大于8", z > 8 );
 }

JUnit4入门

 

----------------------------------------

一种新的测试方法:assertThat()
使用它时,需要下载jar包:hamcrest-all-1.3.0RC2.jar

如果用MyEclipse自带的JUnit4的jar包,会产生冲突,

测试时,会报一个Security的异常,ClassLoader() 原因是加载类的加载器不同

所以单独下载JUnit4的jar包并导入: junit-4.10.jar

 

@Test
 public final void testAdd() {
  int z = new T().add(3, 5);
  assertEquals(8, z);
  assertTrue("z大于8", z >= 8 );
  assertThat(z, is(8)); //测试这个对象是否等于8
  assertThat(z, allOf(greaterThan(5),lessThan(10))); //判断z 大于5并且小于10
 }

具体方法信息查看API http://www.jmock.org/javadoc/2.3.0/org/hamcrest/Matchers.html

---------------------------------------------

Failure 和 Error区别:Failure是测试失败,Error是指程序本身出错
比如调用 assertTrue("z大于8", z >= 8 ) 方法,如果不是 z>=8 时,会显示Failure
如果 在testAdd() 方法内,写 int i = 1/0; 此时会显示Error

执行多个测试方法:
自定义测试方法:@Test
 public void testDivide(){}

执行JUnit Test时,会一起测试这个类中所有方法

 

@Test的属性:

@Test(expected=java.lang.ArithmeticException.class) //希望他抛出异常
 public void testDevide(){
  int z = new T().devide(3, 0); //除数为0
  assertThat(z, is(0));
 }

此时测试会通过

 

@Test(timeout = 100) //在100毫秒内运行结束这个方法

用来测试一些算法等,如果100毫秒内完成了这个方法的执行,则通过

@Ignore:被忽略的测试方法,在方法前写上它,执行测试时,标志这个方法不被测试

@Before:每一个测试方法之前运行
@After:每一个测试方法之后运行

----------------------------------
@BeforeClass:所有测试开始之前运行
@AfterClass:所有测试结束之后运行

@BeforeClass 和 @AfterClass必须为static:

类初始化之前就已经执行了,他们的作用:配置环境,打开连接,关闭、释放连接等

分享到:
评论
2 楼 leon.s.kennedy 2012-12-08  
jixuezhiyuan 写道
你连需要哪些jar包都不说,你是只给自己看的吗?

你如果按照上面进行操作,我想应该不用你手动添加jar包
1 楼 jixuezhiyuan 2012-12-07  
你连需要哪些jar包都不说,你是只给自己看的吗?

相关推荐

    JUnit4入门教程

    JUnit4入门教程

    Junit4入门使用介绍

    ### Junit4入门使用介绍 #### 一、简介 JUnit4是JUnit框架的第四代版本,它是Java领域中最广泛使用的单元测试框架之一。相比于之前的版本,JUnit4引入了许多新的特性和改进,使得编写和执行单元测试变得更加灵活和...

    junit4入门

    《Junit4 入门详解》 JUnit 是一个用于Java编程语言的单元测试框架,而Junit4作为其第四代版本,引入了许多新特性和改进,使得测试代码更加简洁、可读性强,大大提升了测试效率。这篇教程将带你走进Junit4的世界,...

    Junit4单元测试入门例子

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

    JUnit入门及简单使用

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

    Junit4单元测试必备入门教程

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

    Junit实例图解,Junit快速入门

    在Eclipse中,有两种方式添加Junit4库: 1. **添加Eclipse自带的Junit4**:进入项目属性页,选择Java Build Path,点击Add Library,接着在弹出的对话框中选择JUnit并选择相应的版本,最后点击Finish。如图2.1所示...

    junit 入门培训ppt

    本文将深入探讨JUnit入门培训的关键概念和技术。 首先,我们要理解什么是Test Driven Development(TDD),即测试驱动开发。TDD是一种软件开发方法论,它提倡在编写实际业务代码之前先编写测试。通过这种方式,...

    jUnit入门教程 jUnit教程

    【jUnit入门教程 - jUnit教程】 jUnit是一款广泛应用于Java编程语言的单元测试框架,它使得开发者能够方便地编写和执行针对代码功能的测试用例。本教程旨在为初学者提供一个jUnit的基础入门指南,帮助理解如何利用...

    Junit白盒测试学习文档

    在“JUnit4入门学习笔记.doc”这份文档中,我们可以期待找到以下关键知识点: 1. **JUnit介绍**:首先会介绍JUnit的基本概念,包括它的起源、目标以及在软件开发中的地位,以及与其它测试框架的比较。 2. **环境...

    junit4 单元测试源码

    “入门级学习材料”表明这个压缩包可能是为初学者准备的,涵盖了如何使用JUnit4框架创建和运行测试的基本步骤。Eclipse开发环境是一个流行的Java集成开发环境,它支持JUnit插件,使得在Eclipse中编写和运行JUnit测试...

    Junit入门练习代码

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

    junit5学习入门

    ### JUnit5学习入门知识点详解 #### 一、JUnit简介 JUnit是一个开源的Java单元测试框架,被广泛应用于软件开发中的测试驱动开发(TDD)流程之中。它支持开发者通过编写测试代码来验证软件功能是否符合预期,从而提高...

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

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

    JUnit API和入门手册 chm

    本资源包含“JUnit API和入门手册”以及“JUnit In Action”电子书,将帮助你深入理解和掌握JUnit的核心概念和使用方法。 首先,`JUnit4.1.chm`文件是JUnit 4.1版本的API参考文档,通常包含了类、接口、方法等详细...

    JUnit4单元测试入门详解.pdf

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

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

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

Global site tag (gtag.js) - Google Analytics