• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 追求代碼質量: 對 Ajax 應用程序進行單元測試

    發表于:2009-04-03來源:作者:點擊數: 標簽:代碼質量單元AjaxAJAX
    aig 您可能從編寫 Ajax 應用程序中獲得了極大樂趣,但是對它們執行 單元測試 卻著實讓人頭痛。 在本文中,Andrew Glover 著手解決 Ajax 的弱點(其中之一),即應對異步 Web 應用程序執行單元測試的固有挑戰。幸運的是,他發現在 Google Web Toolkit 的幫助下
    aig  您可能從編寫 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 表單

                            
    輸入一個有效單詞,單擊組件的 Submit 按鈕,將向服務器發送消息請求該單詞的定義。該定義通過回調異步返回,相應地插入到 Web 頁面,如圖 2 所示:

                                    圖 2. 單擊 Submit 按鈕后顯示響應

                            


    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>