JUNIT Getting Started
概念:
關于JUNIT的概念可以參見Thinking in Java 2的第一章里的Extreme programming
以junit3.5為例
將classpath指向junit.jar
HelloWorld:
在junit3.5下(或者其他地方)建立一個工作目錄mypro,然后建立項目目錄hello
其中有文件:HelloWorld.java
package mypro.hello;
public class HelloWorld{
public String sayHello(){
return "Hello World";
}
public static void main(String[] args){
HelloWorld world=new HelloWorld();
System.out.println(world.sayHello());
}
}
編譯,運行.
現(xiàn)在寫測試類,來測試HelloWorld類里的sayHello方法
//在hello目錄里建立一個test目錄用來放測試類,其中有HelloWorldTest.java
package mypro.hello;
//import mypro.hello.*; 推薦測試類和原來的被測試類(HelloWorld)同包
import junit.framework.*;
public class HelloWorldTest extends TestCase{
public HelloWorldTest(String name){
super(name);
}
public static void main(String args[]){
junit.textui.TestRunner.run(HelloWorldTest.class);
}
public void testSayHello(){
HelloWorld world=new HelloWorld();
assert(world!=null); //當結果是-1時,assert將報錯
assertEquals("Hello World",world.sayHello());
}
}
HelloWorldTest繼承了TestCase類,寫法固定,main可以不要.
主要是testSayHello()實現(xiàn)了對SayHello方法的測試.
Assert,的參數(shù)是-1時junit會報錯,assertEquals的參數(shù)不匹配時,junit會報錯.詳見JUNIT的API文檔.
編譯后,可以java HelloWorldTest來得到結果 //因為有main
更經(jīng)常的運行方式: java junit.swingui.TestRunner mypro.hello.HelloWorldTest //圖形界面
java junit.textui.TestRunner mypro.hello.HelloWorldTest //字符界面
制造一個錯誤:
把HelloWorld里的return “Hello World” 改成return “Hell0 World”
編譯后
運行測試,看到結果報告錯誤.
更進一步執(zhí)行多個測試,一個測試成為Test Case,而一組Test Case構成Test suite
看junit里money例子和AllTests.java文件.
注意事項:
1.將測試類和被測試類放在同一個目錄里(即同包之內(nèi))將會是很方便的.
2.命名規(guī)則:一般被測試類寫作XXXXTest,而其中的方法寫作testXXX