日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[测试]将TestCase整合

發布時間:2025/6/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [测试]将TestCase整合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在上一篇貼子里,我簡單介紹了如何寫一個TestCase(MockStrutsTestCase是TestCase的一個子類),可以看到是十分簡單的,基本上只要寫一些testXXX方法就可以運行了。當我們選擇運行這個TestCase的時候,實際上運行的是一個Test,Test是TestCase的接口,實現這個接口的還有TestSuite類,使用這個類可以把多個TestCase一起運行,從而更加自動化。

要寫一個TestSuite更加簡單,看一下下面的代碼就明白了:

package?edu.pku.cc.democenter.test;

import?junit.framework.Test;
import?junit.framework.TestSuite;

public?class?AllTests?{

????public?static?Test?suite()?{
????????TestSuite?suite?
=?new?TestSuite("Test?for?democenter");
????????
//$JUnit-BEGIN$
????????suite.addTest(TestTeacherAction.suite());
????????suite.addTest(TestHibernateDAO.suite());
????????
//$JUnit-END$
????????return?suite;
????}
}

當運行這個TestSuite的時候,就會自動對這兩個TestCase進行測試。你可能已經看出來了,我們前文中寫的TestTeacherAction類中并沒有聲明suite方法,是的,因此這里就要增加這個靜態方法,如下所示:

public?static?Test?suite()?{
????
return?new?TestSuite(TestTeacherAction.class);
}

我們在這個方法里只是簡單的返回一個TestSuite對象,JUnit會根據傳遞的參數(TestTeacherAction.class)找到這個TestCase中全部的testXXX()方法并運行。

上面這種suite()方法的寫法被稱為動態方式,即利用了java的反射機制。還可以寫成靜態方式,這就需要在TestCase里寫兩個方法了,如下:

public?static?Test?suite()?{
????TestSuite?suite
=new?TestSuite();
????suite.addTest(
new?TestTeacherAction());
????
return?suite;????
}

protected?
void?runTest()?throws?Throwable?{
????testListTeacherAction();
????testEditTeacherAction();
????testSaveTeacherAction();
}

這種方式允許用戶選擇執行某些testXXX()方法,而且這些方法也不一定以test開頭,反正只要在runTest()里指定的都給執行。而suite()方法與動態方式比也有變化。要注意的是,如果按動態方式寫suite()就不要再覆蓋runTest()方法了,我實驗后發現,這樣會造成runTest()中指定的方法被反復執行n次,其中n等于textXXX()方法的數目。

另外一點,關于JUnite對Test的計數,在動態方式下,JUnit是按照testXXX()的數目計數的;而在靜態方式下,是按照TestCase的數目計數的。

還有一點很重要,動態方式下,setUp()和tearDown()這兩個方法是在每個testXXX()方法的前后執行;而靜態方式下,是在每個TestCase的前后執行,也就是說,同一個TestCase中兩個測試方法之間可能不會經過tearDown()和setUp()的過程。

至于動態方式和靜態方式的選擇,可以根據上面所說的進行參考。不過先聲明,以上都是我自己測試得到的結論,存在出現錯誤的可能性(歡迎告知),以及沒有涉及到的方面。

我本人比較prefer動態方式,畢竟代碼量小一些


本文轉自博客園八進制的博客,原文鏈接:[測試]將TestCase整合,如需轉載請自行聯系原博主。

總結

以上是生活随笔為你收集整理的[测试]将TestCase整合的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。