实验二:使用JUNIT进行单元测试
一.目的和要求
JUnit是一款由Erich Gamma(《设计模式》的作者)和Kent Beck(极限编程的提出者)编写的开源的回归测试框架,供Java编码人员做单元测试之用。当前版本4.1,可以从www.junit.org网站上获得。与早期的JUnit 3相比,JUnit 4.1依赖于Java 5.0的新特性,因此无法兼容于jdk 1.4,可以说是一个全新的框架。
由于这里使用的IDE是Eclipse 3.2.1加语言包,已经集成了junit 4.1,因此便免去下载和配置类库的麻烦了 二.实验内容
参考案例《Junit测试》,完成如下内容 1、创建项目
下面打开Eclipse,点击菜单“文件”->“新建”->“项目”或“新建”按钮,打开“新建”对话框:
请选中“Java项目”,点击“下一步”,进入“新建Java项目”对话框:
在这个对话框中需要设置项目的名称以及项目所在目录,我为自己的项目起名为JUnitTest,目录为F:\\YPJCCK\\JUnit\\Eclipse\\JUnitTest。由于Eclipse自带了JUnit类库,因此此时点击“完成”即可。 2、编写用于测试的JavaBean
用于测试的JavaBean很简单,名为Book,只有id和name两个属性,这两个属性将分别用于两个用例当中。下面开始编写该JavaBean。
请点击“文件”->“新建”->“类”,打开“新建Java类”对话框,设置包为net.test.unit.junit,名称为Book,并确保“public static void main(String[] args)”选项没有选中,然后点击“完成”。修改代码如下:
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; }
publicvoid setName(String name) { this.name = name; }
}
至此,用于测试的JavaBean编写完成。 3、编写测试用例
这里只用了一个类进行测试,名为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这两个方法,并分别使用@Before和@After来进行注解,前者在每个测试方法开始之前执行,多用来做初始化;后者在每个测试方法完成之后执行,多用来清理资源。注意,这两个方法的命名同样没有限制,且定义的数量也没有限制,只是必须用@Before和@After进行注解。另外,JUnit 4.1还提供了@BeforeClass和@AfterClass注解,功能与@Before和@After类似,但前者是用在所有用例执行之前做初始化、之后做清理,而后者是在每个用例执行之前做初始化、之后做清理。下面开始编写BookTest。
在Eclipse中,创建BookTest类有两种方法:方法一,像前边创建Book类一样,点击“文件”->“新建”->“类”来创建;方法二,先在“包资源管理器”中选中Book类,然后点击“文件”->“新建”->“JUnit测试用例”,打开“新建JUint测试用例”窗口:
此时会发现,很多信息已经被Eclipse自动添加进来了。如果想利用Eclipse自动创建测试方法,请点击“下一步”。由于本文会自行编写测试方法,因此请直接点击“完成”。
创建BookTest类后,修改代码如下:
package net.test.unit.junit;
import static org.junit.Assert.*;
import org.junit.After; import org.junit.Before; import org.junit.Test;
public class BookTest {
Book book = null;
@Before
public void setUp() throws Exception { System.out.println(\测试开始!\); book = new Book();
System.out.println(\对象被初始化!\); }
@After
相关推荐: