}
采用靜態的方法要注意要給每個測試一個名字(這個名字可以任意起,但你肯定希望這個名字有某種意義),這樣你就可以區分那個測試失敗了。
動態的方法是用內省來實現runTest()以創建一個測試實例。這要求測試的名字就是需要調用的測試方法的名字:
TestCase test01 = new testCar("testGetWheels");
JUnit會動態查找并調用指定的測試方法。動態的方法很簡潔,但如果你鍵入了錯誤的名字就會得到一個令人奇怪的NoSuchMethodException異常。動態的方法和靜態的方法都很好,你可以按照自己的喜好來選擇。(先別著急選擇,后面還有一種更酷的方法等著你呢。)
TestSuite
一旦你創建了一些測試實例,下一步就是要讓他們能一起運行。我們必須定義一個TestSuite。在JUnit中,這就要求你在TestCase類中定義一個靜態的suite()方法。suite()方法就像main()方法一樣,JUnit用它來執行測試。在suite()方法中,你將測試實例加到一個TestSuite對象中,并返回這個TestSuite對象。一個TestSuite對象可以運行一組測試。TestSuite和TestCase都實現了Test接口(interface),而Test接口定義了運行測試所需的方法。這就允許你用TestCase和TestSuite的組合創建一個TestSuite。這就是為什么我們前面說TestCase,TestSuite以及TestSuite組成了一個composite Pattern的原因。例子如下:
public static Test suite() {
TestSuite suite= new TestSuite();
suite.addTest(new testCar("testGetWheels"));
suite.addTest(new testCar("testGetSeats"));
return suite;
}
從JUnit 2.0開始,有一種更簡單的動態定義測試實例的方法。你只需將類傳遞給TestSuite,JUnit會根據測試方法名自動創建相應的測試實例。所以你的測試方法最好取名為testXXX()。例子如下:
public static Test suite() {
return new TestSuite(testCar.class);
}
從JUnit的設計我們可看出,JUnit不僅可用于單元測試,也可用于集成測試。關于如何用JUnit進行集成測試請參考相關資料。
為了兼容性的考慮,下面列出使用靜態方法的例子:
public static Test suite() {
文章來源于領測軟件測試網 http://www.kjueaiud.com/