追求代碼品質: 對Ajax應用程式進行單元測試

來源:互聯網
上載者:User

使用 GWT 更輕鬆地測試非同步應用程式

簡介: 您可能從編寫 Ajax 應用程式中獲得了極大樂趣,但是對它們執行單 元測試卻著實讓人頭痛。 在本文中,Andrew Glover 著手解決 Ajax 的弱點( 其中之一),即應對非同步 Web 應用程式執行單元測試的固有挑戰。幸運的是, 他發現在 Google Web Toolkit 的協助下,解決這個特殊的代碼品質問題要比預 想的容易。

Ajax 在近期無疑是 Web 開發界最時髦的字眼之一 —— 與 Ajax 相關的工具、架構、書籍以及 Web 網站的劇增就是該技術流行的最好證明。此 外,Ajax 應用程式也相當靈巧,不是嗎?不過,像任何一個開發過 Ajax 應用 程式的人證實的一樣,對 Ajax 執行測試真的很不方便。事實上,Ajax 的出現 已經從根本上使得許多測試架構和工具失效,因為它們並沒有針對非同步 Web 應 用程式測試進行設計!

有趣的是,某個支援 Ajax 的架構的開發人員注 意到了這個限制,並為此做了一些非常新穎的設計:內建的可測試性。除此之外 ,由於該架構簡化了使用 Java™ 代碼(而不是 JavaScript)建立 Ajax 應用程式,它的起點甚高,並且充分利用了 Java 平台上無可置疑的標準測試框 架:JUnit。

我所論及的架構當然是非常流行的 Google Web Toolkit, 也就是 GWT。在本文中,我將向您展示 GWT 如何實際地利用 Java 相容性,使 Ajax 應用程式的每個部分都能像與之對應的同步應用程式一樣進行測試。

JUnit 和 GWTTestCase

因為與 GWT 有關的 Ajax 應用程式採用 Java 代碼編寫,所以非常適合開發人員使用 JUnit 進行測試。事實上,GWT 開 發小組還為此建立了一個協助器類 GWTTestCase,擴充自 JUnit 的 3.8.1 TestCase。該基類添加了一些功能,可測試 GWT 代碼並處理某些基礎實現從而 啟動並運行 GWT 組件。

需要提醒的是:GWTTestCase 並非用來測試與 UI 相關的代碼 —— 它是為了便於測試那些由 UI 互動觸發 的非同步 問題。對 GWTTestCase 用途的誤解使許多剛接觸 GWT 的開發人員備受挫折,因 為他們期望能夠用它方便地類比使用者介面,但最終發現這是徒勞的。

Ajax 組件有兩個基本組成:體驗和功能,這些都被設計成非同步方式。圖 1 示範了一個類比 Web 表單的簡單 Ajax 組件。由於該組件支援 Ajax,表單的 提交是非同步執行的(即:無需重新載入與傳統表單提交關聯的頁面)。

圖 1. 一個支援 Ajax 的簡單 Web 表單

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.