国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Struts行為測試框架StrutsTestCase實戰

2019-11-18 15:43:59
字體:
來源:轉載
供稿:網友
閱讀提要 StrutsTestCase是一個強有力的易于使用的針對Struts行為的測試框架。StrutsTestCase,并與傳統型JUnit測試相結合,將會帶給你一個相當高的測試覆蓋率并提高你的產品的可靠性。

  一、引言

  StrutsTestCase是一個用于測試Struts行為的基于Junit的測試框架。假如你使用Struts,那么你會注重到它可以提供給你一種輕易而有效的方式來測試你的應用程序的Struts行為類。

  典型的J2EE應用程序都是分層構建的,如圖1所示。

  ·DAO層封裝了數據庫存取。Hibernate映射和對象類,Hibernate查詢,實體EJBs,或一些其它的實體-關系持續性技術都可以在這一層找到。

  ·商業層包含更高級的商業服務。理想地,這個商業層將是相對獨立于數據庫實現。在這個層上經常使用會話EJBs。

  ·描述層包含為用戶顯示應用程序數據并解釋用戶請求。在一個Struts應用程序中,這一層典型地使用jsp/JSTL頁面來顯示數據并且使用Struts行為來解釋用戶查詢。

  ·客戶層基本上是運行于用戶機器上的web瀏覽器??蛻舳诉壿?例如,javascript)有時被放在這里,盡管很難對其進行有效地測試。

Struts行為測試框架StrutsTestCase實戰(圖一)
圖1.典型的J2EE架構

  DAO和商業層的測試或者可以通過使用經典的JUnit測試或者使用各種JUnit擴展來進行,具體依靠于架構的實現細節。DbUnit是一種用來進行數據庫單元測試的良好選擇。

  另一方面,測試Struts行為總是很困難的事情。即使在商業層嚴格地限制于商業層的構建時,Struts行為也總要包含重要數據校驗,轉換和流程控制代碼。不對Struts行為進行測試將會在代碼覆蓋率上留下一道很臟的鴻溝。StrutsTestCase會讓你填充這條鴻溝。

  對行為層進行單元測試還帶來其它一些益處:

  ·可以更好地規劃視圖和控制層,從而使之更為簡單清楚。

  ·更輕易重構行為類。

  ·避免冗余的未使用的行為類。

  ·測試實例有助于對行為層進行歸檔-這在創建屏幕時是很有用的。

  上面是基于測試開發的典型好處,并且它們可以應用于在各種情況下使用的Struts行為層。

  二、StrutsTestCase簡介

  StrutsTestCase工程提供了一種靈活又方便的方法來從JUnit框架內測試Struts行為。它能夠使你對你的Struts行為進行白色盒子測試-通過在調用行為后建立請求參數并檢查結果Request或session的狀態。

  StrutsTestCase答應或者是一個模擬測試方式-這時框架模擬web服務器容器,或者是一個容器內方式-這時使用Cactus框架來從服務器容器(例如Tomcat)內部運行測試。一般地,我比較喜歡模擬測試方式,因為它更為輕量級的且運行更快些,并因此答應較寬松的開發周期。
所有的StrutsTestCase單元測試類或者派生于MockStrutsTestCase以進行模擬測試,或者派生于CactusStrutsTestCase以進行容器內測試。在此我們先討論模擬測試,因為它要求較少的配置并且運行較快些。 三、實戰StrutsTestCase

  為了使用StrutsTestCase來測試這個行為,我們創建一個擴展類MockStrutsTestCase的新類。這個類提供一系列方法來構建一個模擬的HTTP請求,調用相應的Struts行為以及一旦在行為完成時校驗應用程序狀態。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大厂| 万年县| 光山县| 闻喜县| 正阳县| 英山县| 华蓥市| 武乡县| 宁远县| 太仆寺旗| 米脂县| 长寿区| 唐山市| 东乌珠穆沁旗| 富川| 栾城县| 剑河县| 涪陵区| 秦皇岛市| 饶河县| 南昌市| 运城市| 象州县| 贵港市| 和硕县| 沙湾县| 登封市| 通辽市| 东乡县| 南溪县| 措美县| 恭城| 绥德县| 河池市| 四川省| 理塘县| 汤原县| 江山市| 施秉县| 循化| 沧源|