淺析對JSF項目的單元測試

  不知道大家有沒有對Web頁面進行測試的經歷?或者正想要對web頁面進行測試?爲什麼我下面這篇文章沒什麼人回覆呢?是因爲JSF用到的人少,還是因爲我比較超前沒幾個人想到對JSF頁面進行自動測試呢?呵呵

  一直以來,我們使用java語言開發的程序主要是web應用程序而非桌面應用,當然java是完全可以用來開發桌面應用程序的,目前已經有了比較成熟的針對java的單元測試工具Junit,但是Junit在web應用開發過程中卻很難派上大的用場,比如如何讓程序對JSP頁面進行自動測試?

  我們在太原鐵路項目中普遍採用了JSF框架進行前端頁面的展現和服務器端業務邏輯的處理,收到了比較好的效果,提高了工作效率,但是我們在程序開發過程中經常重複出現一些解決過的錯誤,爲了解決這些錯誤又需要重新尋找出現錯誤的地方,或者因爲改動了一個小的地方而導致其他地方出現問題我們卻一無所知。

  最後我們只能通過一遍遍的點擊頁面重複測試才能重新樹立對程序的信心,然而人是有厭倦心理的,對於一遍遍重複的低級勞動很快就會厭倦,尤其是程序員對自己所寫的代碼很厭倦測試,這樣很難保證程序的質量。

  於是我們想過引入單元測試,重複的東西讓計算機去做,然而對JSF頁面進行單元測試是比較困難的,因爲JSF 程序都是運行在容器環境中的,與HTTP請求和相應是緊密關聯,如果我們要對ManagedBean進行測試,需要構造上下文環境,這些上下文環境原本是由瀏覽器和JBoss之類的容器構造的,讓我們自己去編寫代碼構造上下文環境很難也很不現實,對JSF頁面的自動測試也是很難想象的,然而有了 JSFUnit的參與這一切將變得很簡單,JSFUnit就是我下面要介紹的針對JSF的測試工具。

  JSFUnit是jboss開源組織的一個開源項目,JSFUnit beta 1版於2007年11月發佈,目前國內使用JSFUnit還比較少,相信日後一定會得到廣泛的使用。JSFUnit被設計爲通過使用簡單的API來完成 JSF項目的集成測試和單元測試的工具。它完全可以訪問managed beans, FacesContext, EL表達式和JSF內部組件樹,同時可以訪問每次客戶端請求後的HTML相應。

  當然JSFUnit還有其他一些功能,比如JSF靜態分析測試可以測試JSF的配置文件faces-config.xml,幫你儘早發現配置問題。 JSFTimer能夠進行JSF生命週期每個階段的性能測試。從此JSF的測試從難以想象到輕鬆變爲現實。目前還只有JSFUnit的官方網站對它的使用方法進行了比較詳細的介紹,如有興趣可以登陸www.jsfunit.org或者http://www.jboss.com/jsfunit/進行查詢。下面我將介紹一下我在使用JSFUnit中的一些經驗,希望需要使用它的人能夠少走彎路。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章