JUnit学习笔记(NetBeans篇)
一、简介
JUnit是一款由Erich Gamma(《设计模式》的作者)和Kent Beck(极限编程的提出者)编写的开源的回归测试框架,供Java编码人员做单元测试之用。当前版本4.1,可以从www.junit.org网站上获得。与早期的JUnit 3相比,JUnit 4.1依赖于Java 5.0的新特性,因此无法兼容于jdk 1.4,可以说是一个全新的框架。
JUnit是一款由Erich Gamma(《设计模式》的作者)和Kent Beck(极限编程的提出者)编写的开源的回归测试框架,供Java编码人员做单元测试之用。当前版本4.1,可以从www.junit.org网站上获得。与早期的JUnit 3相比,JUnit 4.1依赖于Java 5.0的新特性,因此无法兼容于jdk 1.4,可以说是一个全新的框架。
这里使用的IDE是NetBeans 5.5中文版,由于NetBeans仅集成了junit 3.8.1,因此下面还需要下载和配置一下JUnit 4.1类库。请先从www.junit.org上获得junit4.1.zip文件,解压缩,然后找到其中的junit-4.1.jar,将该文件放到特定文件夹中备用,我放到了本机的F:/YPJCCK/JUnit/lib文件夹中。
二、创建项目
下面打开NetBeans,然后点击菜单“文件”->“新建项目”或“新建项目”按钮,打开“新建项目”对话框:
下面打开NetBeans,然后点击菜单“文件”->“新建项目”或“新建项目”按钮,打开“新建项目”对话框:
请在“类别”中选择“常规”,再从“项目”中选择“Java应用程序”,然后点击“下一步”,进入“新建Java应用程序”对话框:
在这个对话框中需要设置项目的名称以及项目所在目录,我为自己的项目起名为JUnitTest,“项目位置”为F:/YPJCCK/JUnit/NetBeans,此外,请将“创建主类”前的对号去掉。然后点击“完成”。
项目创建后,NetBeans会自动加载JUnit 3.8.1,但这并不是我们所要的,所以请从“项目”窗口中选择“JUnitTest”->“测试库”->“JUnit-junit-3.8.1.jar”:
点击鼠标右键,“删除”。然后再选中“测试库”,点击鼠标右键,选择“添加 JAR/文件夹”,打开对话框,找到之前存放在特定目录下的junit-4.1.jar文件,打开,此时JUnit 4.1环境就配置好了。
三、编写用于测试的JavaBean
用于测试的JavaBean很简单,名为Book,只有id和name两个属性,这两个属性将分别用于两个用例当中。下面开始编写该JavaBean。
用于测试的JavaBean很简单,名为Book,只有id和name两个属性,这两个属性将分别用于两个用例当中。下面开始编写该JavaBean。
请点击“文件”->“新建文件”或“新建文件”按钮,打开“新建文件”对话框:
确保“项目”选择的是JUnitTest,然后在“类别”中选中Java类,在“文件类型”中选中Java类,点击“下一步”,进入下一窗口:
设置类名为Book,包为net.test.unit.junit,设置完成后点击“完成”,修改代码如下:
package net.test.unit.junit;
public class Book {
private String id = null;
private String name = null;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
至此,用于测试的JavaBean编写完成。
四、编写测试用例
这里只用了一个类进行测试,名为BookTest。以前像这样的类是需要继承junit.framework.TestCase的,但由于JUnit 4.1充分利用了Java 5.0新增的注解功能,因此便无须再这样做了。当然,JUnit 4.1仍然提供对旧方式的支持,不过这里并不打算介绍。
这里只用了一个类进行测试,名为BookTest。以前像这样的类是需要继承junit.framework.TestCase的,但由于JUnit 4.1充分利用了Java 5.0新增的注解功能,因此便无须再这样做了。当然,JUnit 4.1仍然提供对旧方式的支持,不过这里并不打算介绍。
BookTest类包含两个用例,分别对应该类的caseId和caseName方法,即每个方法实现一个用例。与JUnit 3.8.1不同,在JUnit 4.1中不再强制要求方法名以test开头,而是允许随意命名,只要符合Java的命名规范就行,这里为了表明这点,特意用了case开头,但测试用例必须以@Test注解。此外,BookTest还有setUp和tearDown这两