3 使用斷言(Assert)
開發人員熟悉其他編程環境通常的斷言概念。例如,在C和C++中,assert()宏是常常用來測試一個正確的結論到一個潛在問題的操作。在JUnit中,您可以直接從測試實例中調用任何Assert方法,因為TestCase 是Assert的子類。
[NextPage]
不像C和C++語言中assertion 宏的發現,Assert類–被定義和應用為junit.framework.Assert,具有的功能如下所示。
Assert.assertEquals
Assert.assertNotNull
Assert.assertNull
Assert.assertSame
Assert.assertTrue
Assert.fail
除fail成員函數外,上述所有其他符號重載的函數將執行一個測試,來決定是否產生錯誤信息。相反,直接調用fail將通過Assert.fail(String)或Assert.fail()通知Assert為fail。
在Assert類中有許多方法,每個設計執行一個斷言都有所不同。這些方法中的任何一個都觸發測試失敗。
為瀏覽junit.framework.Assert中的不同方法,在編輯器中打開一個測試實例,在結構面板上雙擊TestCase 父類,然后雙擊它的父類Assert。
4 使用setUp()和tearDown()
我們能在測試實例中使用setUp和tearDown方法,以減少重復代碼。在任何測試函數前后,setUp和tearDown方法都應被調用。測試類的代碼如下:
public class TestMoney extends TestCase { Money101 f12EUR; Money101 f14EUR; public TestMoney101(String s) { } |
5 測試集
測試實例可以被集成為測試集。頂層的測試集應該包含其他所有的測試實例和(或)測試集。
測試實例和測試集都是TestCase 的擴展并執行Test 接口。測試實例和測試集惟一的區別是測試實例包含單獨的測試方法,而測試集通常用來組織其他單元實例到一個邏輯的組中,并把它們作為組來運行。測試集可以調用任何測試實例或測試集。
有兩種方法執行測試集,分別為:靜態和動態。在靜態和動態測試中,您都必須提供一個靜態方法建立測試集。
5.1 建立動態測試
有兩種方法建立動態測試實例。第一種方法不僅允許您動態地實例化Test,也可以允許您動態地為正在運行的測試實例加入單獨的測試。相應的代碼如下:
public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(new TestMoney101("testEquals")); suite.addTest(new TestMoney101("testAddMoney")); return suite; } |
suite()函數返回一個Test的接口,此接口是被動態建立的。每個測試方法都可以被單獨增加。
我們不僅可以單獨增加每個測試到動態實例,而且可以使用符合字符串的構造函數,相應的代碼如下:
public static Test suite() { return new testSuite(TestMoney101.class); } |
5.2 建立靜態測試
[NextPage]
這是使用靜態Test建立同樣功能的代碼。
public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(new TestMoney101("money equals") { protected void runTest() { testEquals(); } }); suite.addTest(new TestMoney101("money add") { protected void runTest() { testAddMoney101(); } }); return suite; } |
5.3 JBuilder界面
在JBuilder中使用Test Runner的這些測試輸出樣式如下圖所示。
JBuilder中提供了3種test runner 的類型。每個test runner 對應一個特定的用戶界面。
JUnit Text UI
JUnit Swing UI
JUnit Awt UI
您可以選擇【Project】→【Properties】命令或【Run】→【Configurations】命令中Run面板,在其中選擇Test Runner。每個Test Runner都由Borland JBuilder 集成到測試框架中。
如果測試失敗,將以一個紅色小球作為標記。在 JBuilder 中雙擊該測試方法,您可以直接看到其源代碼。
文章來源于領測軟件測試網 http://www.kjueaiud.com/