痛點:Web 頁面測試難,JSF 更難
傳統 JUnit 難測 Web 頁面,JSF 運行於容器中,與 HTTP 請求/響應緊密耦合。測試 Managed Bean 需手工構造上下文極不現實。團隊長期靠人工點擊重複測試,效率低、質量難保證。
救星:JSFUnit
JBoss 開源項目,2007 年 11 月發布 Beta 1。設計目標:通過簡單 API 完成 JSF 項目集成測試與單元測試。核心能力:
- 完全訪問 Managed Bean、FacesContext、EL 表達式、JSF 組件樹。
- 訪問每次客戶端請求後的 HTML 響應。
- 靜態分析測試
faces-config.xml,早發現配置問題。
- JSFTimer 進行 JSF 生命周期各階段性能測試。
讓 JSF 測試從「難以想像」變為「輕松現實」。
為什麼選 JSFUnit?
- 基於 HttpUnit 和 Apache Cactus,支援客戶端與伺服端同步測試。
- 同一測試類可提交表單數據並驗證 Bean 狀態。
- 支援 RichFaces、Ajax4jsf 組件。
- 整合 Ant/Maven,支援持續集成。
起步建議
- 訪問官網
www.jsfunit.org 或 jboss.com/jsfunit 閱讀詳細文檔。
- 先從靜態分析測試切入,檢查配置文件。
- 編寫首個測試類:啟動會話、提交表單、斷言 Bean 屬性與頁面輸出。
- 引入 JSFTimer 監控關鍵請求的生命周期耗時。
國內現狀與展望
目前國內使用較少,但隨著 JSF 普及,必將廣泛應用。早期採用者將在測試自動化上建立優勢。