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()); } }
編譯,運行.
現在寫測試類,來測試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()實現了對SayHello方法的測試.
Assert,的參數是-1時junit會報錯,assertEquals的參數不匹配時,junit會報錯.詳見JUNIT的API文檔. 編譯后,可以java HelloWorldTest來得到結果 //因為有main 更經常的運行方式: javajunit.swingui.TestRunnermypro.hello.HelloWorldTest //圖形界面 java junit.textui.TestRunner mypro.hello.HelloWorldTest //字符界面
制造一個錯誤: 把HelloWorld里的return “Hello World” 改成return “Hell0 World” 編譯后
運行測試,看到結果報告錯誤.
更進一步執行多個測試,一個測試成為Test Case,而一組Test Case構成Test suite 看junit里money例子和AllTests.java文件.
注意事項: 1.將測試類和被測試類放在同一個目錄里(即同包之內)將會是很方便的. 2.命名規則:一般被測試類寫作XXXXTest,而其中的方法寫作testXXX
|