在使用XP进行开发的过程,unit test是必不可少的环节。作为unit test,junit是的工具。本文从使用目的、如何使用、以及使用中需要考虑的问题,简略描述了junit的基本用法。
使用目的
junit是java中书写unit test的framework,目前一些流行的unit test工具大都都是在junit上扩展而来的。目前它的版本是junit3.8.1,可以从www.junit.org上下载。
用法
1. 基本使用步骤,Junit的使用非常简单,它的基本使用步骤:
- 创建,从junit.framework.TestCase派生unit test需要的test case
- 书写测试方法,提供类似于如下函数签名的测试方法:
public void testXXXXX();
- 编译,书写完test case后,编译所写的test case类
- 运行,启动junit test runner,来运行这个test case。
Junit提供了2个基本的test runner:字符界面和图形界面。启动命令分别如下:
a 图形界面:
java junit.swingui.TestRunner XXXXX
b 字符界面:
java junit.textui.TestRunner XXXXX
2. 使用例子:
import junit.frmework.TestCase;
public class TestSample extends TestCaset{
public void testMethod1(){
assertTrue( true);
}
}
3. setUp与tearDown,这两个函数是junit framework中提供初始化和反初始化每个测试方法的。setUp在每个测试方法调用前被调用,负责初始化测试方法所需要的测试环境;tearDown在每个测试方法被调用之后被调用,负责撤销测试环境。它们与测试方法的关系可以描述如下:
测试开始 -> setUp -> testXXXX -> tearDown ->测试结束
4. 使用例子:
import junit.frmework.TestCase;
public class TestSample extends TestCaset{
protected void setUp(){
//初始化……
}
public void testMethod1(){
assertTrue( true);
}
potected void tearDown(){
//撤销初始化……
}
}
5. 区分fail、exception。
- fail,期望出现的错误。产生原因:assert函数出错(如assertFalse(true));fail函数产生(如fail(……))。
- exception,不期望出现的错误,属于unit test程序运行时抛出的异常。它和普通代码运行过程中抛出的runtime异常属于一种类型。
对于assert、fail等函数请参见junit的javadoc。
6. 使用例子:
import junit.frmework.TestCase;
public class TestSample extends TestCaset{
protected void setUp(){
//初始化……
}
public void testMethod1(){
……
try{
boolean b= ……
assertTrue( b);
throw new Exception( “This is a test.”);
fail( “Unable point.”); //不可能到达
}catch(Exception e){
fail( “Yes, I catch u”); //应该到达点
}
……
}
potected void tearDown(){
//撤销初始化……
}
}