首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2EE

JSF 測試工具全景:從黑盒到白盒的演進 (JSFUnit、Shale、JSF Extensions)

     編輯:J2EE

傳統困境:容器外難測 JSF 組件

多數 Web 測試框架 (HtmlUnit, HttpUnit, Canoo WebTest, Selenium) 採黑盒模式,僅驗證渲染 HTML,無法測試伺服端組件狀態。JSF 運行於容器中,與 HTTP 緊耦合,單元測試長期被認為困難。

破局者:新一代白盒測試框架

JSFUnit (JBoss, Beta 1 2007.11)

  • 基於 HttpUnit + Cactus,支持 JSF 及 Ajax 組件綜合測試。
  • 同一測試類測試客戶端與伺服端,提交表單並驗證 Managed Bean 更新。
  • 靜態分析測試 faces-config.xml,運行前發現配置問題。
  • JSFTimer 進行生命周期各階段性能分析,斷言響應時間符合 SLA。
  • 支持 RichFaces、Ajax4jsf。Beta 2 即將發布。

Shale Test Framework (Apache)

  • 提供 Servlet/JSF 組件 Mock 對象 (MockApplication, MockExternalContext, MockFacesContext)。
  • 基礎測試類 AbstractJsfTestCase、AbstractViewControllerTestCase 簡化 ViewController 測試環境搭建。
  • 整合 Spring,JSF 組件可綁定為 Spring Bean。

JSF Extensions (無 UI 組件集合)

  • 基於 JSF 1.2 擴展功能,用 JUnit/HtmlUnit/Cactus 自動測試。
  • Test-Time 模塊提供 Mock 對象。
  • Design-Time 模塊:熱部署 (停止/重啟應用無需構建重部署),基於 PhaseListener 重載配置與類,支持測試驅動迭代開發。

測試框架必備特性清單

  • 容器外獨立運行,IDE 內運行 (TDD)。
  • 完整 HTTP 請求-響應生命周期測試。
  • Ant/Maven 集成 (CI 環境)。
  • JSF 專屬:調用 JSF API 而非檢查 HTML/DOM;導航測試 (驗證輸入、視圖);Action/錯誤消息驗證;rendered=false 組件驗證;XML 配置文件加載驗證。

輔助開發與性能工具

  • JXInsight (JInspired):基於 PhaseListener 的 JSF 追蹤與性能檢測,收集追蹤棧、Java 調用棧、UIComponent 層次。
  • Eclipse WTP JSF Tools:Visual JSF Page Editor、Faces Config Editor,支持開發部署。

選型建議

  • 全棧集成測試 + Ajax 組件 → JSFUnit。
  • 單元測試 ViewController/邏輯、大量 Mock 需求 → Shale Test。
  • TDD 迭代開發、熱部署需求 → JSF Extensions。
  • 性能分析、生產環境診斷 → JXInsight。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved