除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 { public TestMoney101(String s) { protected void setUp() { public void testAddMoney101() { public void testEquals() { } |
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); } |
這是使用靜態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; } |
在JBuilder中使用Test Runner的這些測試輸出樣式如下圖所示。
JUnit Text UI
JUnit Swing UI
JUnit Awt UI
您可以選擇【Project】→【Properties】命令或【Run】→【Configurations】命令中Run面板,在其中選擇Test Runner。每個Test Runner都由Borland JBuilder 集成到測試框架中。
如果測試失敗,將以一個紅色小球作為標記。在 JBuilder 中雙擊該測試方法,您可以直接看到其源代碼。
更多信息請查看《JBuilder精髓》一書。
文章來源于領測軟件測試網 http://www.kjueaiud.com/