Ajax 在近期無疑是 Web 開發界最時髦的字眼之一 —— 與 Ajax 相關的工具、框架、書籍以及 Web 站點的劇增就是該技術流行的最好證明。此外,Ajax 應用程序也相當靈巧,不是嗎?不過,像任何一個開發過 Ajax 應用程序的人證實的一樣,對 Ajax 執行測試真的很不方便。事實上,Ajax 的出現已經從根本上使得許多測試框架和工具失效,因為它們并沒有針對異步 Web 應用程序測試進行設計!
有趣的是,某個支持 Ajax 的框架的開發人員注意到了這個限制,并為此做了一些非常新穎的設計:內置的可測試性。除此之外,由于該框架簡化了使用 Java™ 代碼(而不是 JavaScript)創建 Ajax 應用程序,它的起點甚高,并且充分利用了 Java 平臺上無可置疑的標準測試框架:JUnit。
我所論及的框架當然是非常流行的 Google Web Toolkit,也就是 GWT。在本文中,我將向您展示 GWT 如何實際地利用 Java 兼容性,使 Ajax 應用程序的每個部分都能像與之對應的同步應用程序一樣進行測試。
改進代碼質量
別錯過 Andrew Glover 的 代碼質量討論論壇,里面有關于代碼語法、測試框架以及如何編寫專注于質量的代碼的幫助。
JUnit 和 GWTTestCase
因為與 GWT 有關的 Ajax 應用程序采用 Java 代碼編寫,所以非常適合開發人員使用 JUnit 進行測試。事實上,GWT 開發小組還為此創建了一個幫助器類 GWTTestCase,擴展自 JUnit 的 3.8.1 TestCase。該基類添加了一些功能,可測試 GWT 代碼并處理某些基礎實現從而啟動并運行 GWT 組件。
Google Web Toolkit
Google Web Toolkit 在 Java Web 開發社區的發布聲勢浩大,同時也獲得了與之相稱的巨大轟動。GWT 為利用 Java 代碼進行設計、構建和部署支持 Ajax 的 Web 應用程序提供了一種新穎的方式。Java Web 開發人員不再需要學習 JavaScript 并花費數個小時解決特定于瀏覽器的問題,他們可以直接進行與 Ajax 有關的富含信息的動態 Web 應用程序設計。
需要提醒的是:GWTTestCase 并非用來測試與 UI 相關的代碼 —— 它是為了便于測試那些由 UI 交互觸發 的異步問題。對 GWTTestCase 用途的誤解使許多剛接觸 GWT 的開發人員備受挫折,因為他們期望能夠用它方便地模擬用戶界面,但最終發現這是徒勞的。
Ajax 組件有兩個基本組成:體驗和功能,這些都被設計成異步方式。圖 1 演示了一個模擬 Web 表單的簡單 Ajax 組件。由于該組件支持 Ajax,表單的提交是異步執行的(即:無需重新載入與傳統表單提交關聯的頁面)。
圖 1. 一個支持 Ajax 的簡單 Web 表單
輸入一個有效單詞,單擊組件的 Submit 按鈕,將向服務器發送消息請求該單詞的定義。該定義通過回調異步返回,相應地插入到 Web 頁面,如圖 2 所示:
圖 2. 單擊 Submit 按鈕后顯示響應
文章來源于領測軟件測試網 http://www.kjueaiud.com/