JbuilderX使用Junit學習筆記
1.簡介 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
既然我們已經對JUnit有了一個大致的瞭解,我希望能給大家提供一個稍微正式一些的編寫JUnit測試文檔的手冊,明白其中的一些關鍵術語和概念。但我要聲明的是這並不是一本完全的手冊,只能認爲是一本入門手冊。同其他OpenSource的軟件有同樣的問題,JUnit的文檔並沒有商業軟件文檔的那種有規則,簡潔和完全。由開發人員編寫的文檔總是說不太清楚問題,全整的文檔需要參考"官方"指南,API手冊,郵件討論組的郵件,甚至包括源代碼中及相關的註釋。
事實上問題並沒有那麼複雜,除非你有非常特別的要求,否則,只需參考本文你就可以得到所需的大部分信息。
2.安裝
JBuilderX中集成JUnit,不用配置ClassPath,就可以使用JUnit,非JBuilderX下的配置,就不在這裏敖述了。
3.固定流程
junit定義了一個固定的格式建立一個測試用例:
1、 implement 一個TestCase的子類。
2、 定義儲存狀態的公用實例變量。
3、 通過overriding setUp 來初始化公用變量。
4、 通過overriding tearDown在測試後清除初始化。
5、 創建testXXXXX()的測試方法。
6、 一旦你創建了一些測試實例,爲了讓他們能一起運行。必須定義一個TestSuite。
通過這樣一個框架,可以很容易開發出相應地測試類。
4.編寫測試用例TestCase
JUnit提供了兩個方法,定義在TestCase類中。 protected void setUp() throws java.lang.Exception protected void tearDown() throws java.lang.Exception
覆蓋setUp()方法,初始化所有測試的Fixture(你甚至可以在setUp中建立網絡連接),將每個測試略有不同的地方在testXXX ()方法中進行配置。
覆蓋tearDown(),釋放你在setUp()中分配的永久性資源,如數據庫連接。
當JUnit執行測試時,它在執行每個testXXX ()方法前都調用setUp(),而在執行每個test testXXX ()方法後都調用tearDown()方法,由此保證了測試不會相互影響。
需要提醒一下,在junit.framework.Assert類中定義了相當多的assert方法,主要有assert(), assert(), assertEquals(), assertNull(), assertSame(), assertTrue(), fail()等方法。如果你需要比較自己定義的類,如Car。assert方法需要你覆蓋Object類的equals()方法,以比較兩個對象的不同。實踐表明:如果你覆蓋了Object類的equals()方法,最好也覆蓋Object類的hashCode()方法。再進一步,連帶Object類的toString()方法也一併覆蓋。這樣可以使測試結果更具可讀性。
一定要保證testXXX ()方法的public屬性,否則無法通過內省(reflection)對該測試進行調用。
5.編寫集合測試TestSuit
在TestCase類中定義一個靜態的suite()方法。suite()方法就像main()方法一樣,JUnit用它來執行測試。在suite()方法中,你將測試實例加到一個TestSuite對象中,並返回這個TestSuite對象。一個TestSuite對象可以運行一組測試。TestSuite和TestCase都實現了Test接口(interface),而Test接口定義了運行測試所需的方法。這就允許你用TestCase和TestSuite的組合創建一個TestSuite。
JUnit提供了三種界面來運行測試
[Text UI] junit.textui.TestRunner
[AWT UI] junit.awtui.TestRunner
[Swing UI] junit.swingui.TestRunner
JBuilder9下運行單元測試:
1. 建立一個工程,並添加一個類,例如JUnitStudy.java。
2. 選擇Project|Rebuild Project “JunitStudy.jpx”命令,編譯工程,這樣做可以使工程中的類文件在Test Case嚮導中可見。
3. 在工程窗口雙擊JunitStudy.java文件在代碼窗口打開。
4. 從Object Gallery對話框中選擇Test選項卡,從Test選項卡中選中Test Case圖標,然後單擊OK按鈕,這樣JunitStudy.java文件將被作爲被測試的類顯示在Test Case嚮導中。
5. 在Test Case嚮導中選中一個方法。單擊Finish按鈕,這樣一個新的test case,Test TestJunitStudy.java文件就會在代碼窗口被打開。
6. 添加相應的代碼後單擊主工具欄中的保存鈕,保存工程。
7. 在工程窗口右擊TestJunitStudy.java文件並從彈出的快捷菜單選擇Run Test using TestJunitStudy命令開始運行這個測試類,開發人員可以在消息窗口看到它的運行情況。
8. 如果運行進度顯示是紅色,表示這個類有錯誤發生。
<<――創建一個test suit―->>
9. 在TestJunitStudy.java中增加一個新的測試方法,並保存
10. 選擇File|New 命令,彈出Object Gallery對話框。從中選擇Test Suit圖標,然後單擊ok按鈕,彈出Test Suit嚮導。
11.在嚮導中選中TestJunitStudy作爲一個包含在TestSuit的test case。
12.單擊Next,修改Classname爲AllTests.java。
13.然後單擊Finish,這樣AllTests.java就被添加到開發人員的工程中。
14.在工程窗口中右擊AllTests.java文件並從彈出的快捷菜單中選擇Run Test using AllTests命令開始運行測試類。
參考文獻:
1. 應用Junit實施單元測試(原創作者:eric )
2. Junit實施 (Java開發者)http://www.neweasier.com/
3. Junit學習筆記(竹筍炒肉)
4. JBuilder基礎教程(清華大學)