Ajax 在近期無(wú)疑是 Web 開發(fā)界最時(shí)髦的字眼之一 —— 與 Ajax 相關(guān)的工具、框架、書籍以及 Web 站點(diǎn)的劇增就是該技術(shù)流行的最好證明。此外,Ajax 應(yīng)用程序也相當(dāng)靈巧,不是嗎?不過(guò),像任何一個(gè)開發(fā)過(guò) Ajax 應(yīng)用程序的人證實(shí)的一樣,對(duì) Ajax 執(zhí)行測(cè)試真的很不方便。
事實(shí)上,Ajax 的出現(xiàn)已經(jīng)從根本上使得許多測(cè)試框架和工具失效,因?yàn)樗鼈儾]有針對(duì)異步 Web 應(yīng)用程序測(cè)試進(jìn)行設(shè)計(jì)!
有趣的是,某個(gè)支持 Ajax 的框架的開發(fā)人員注意到了這個(gè)限制,并為此做了一些非常新穎的設(shè)計(jì):內(nèi)置的可測(cè)試性。除此之外,由于該框架簡(jiǎn)化了使用 Java? 代碼(而不是 JavaScript)創(chuàng)建 Ajax 應(yīng)用程序,它的起點(diǎn)甚高,并且充分利用了 Java 平臺(tái)上無(wú)可置疑的標(biāo)準(zhǔn)測(cè)試框架:JUnit。
我所論及的框架當(dāng)然是非常流行的 Google Web Toolkit,也就是 GWT。在本文中,我將向您展示 GWT 如何實(shí)際地利用 Java 兼容性,使 Ajax 應(yīng)用程序的每個(gè)部分都能像與之對(duì)應(yīng)的同步應(yīng)用程序一樣進(jìn)行測(cè)試。
JUnit 和 GWTTestCase
因?yàn)榕c GWT 有關(guān)的 Ajax 應(yīng)用程序采用 Java 代碼編寫,所以非常適合開發(fā)人員使用 JUnit 進(jìn)行測(cè)試。事實(shí)上,GWT 開發(fā)小組還為此創(chuàng)建了一個(gè)幫助器類 GWTTestCase,擴(kuò)展自 JUnit 的 3.8.1 TestCase。該基類添加了一些功能,可測(cè)試 GWT 代碼并處理某些基礎(chǔ)實(shí)現(xiàn)從而啟動(dòng)并運(yùn)行 GWT 組件。
需要提醒的是:GWTTestCase 并非用來(lái)測(cè)試與 UI 相關(guān)的代碼 —— 它是為了便于測(cè)試那些由 UI 交互觸發(fā) 的異步問(wèn)題。對(duì) GWTTestCase 用途的誤解使許多剛接觸 GWT 的開發(fā)人員備受挫折,因?yàn)樗麄兤谕軌蛴盟奖愕啬M用戶界面,但最終發(fā)現(xiàn)這是徒勞的。
Ajax 組件有兩個(gè)基本組成:體驗(yàn)和功能,這些都被設(shè)計(jì)成異步方式。圖 1 演示了一個(gè)模擬 Web 表單的簡(jiǎn)單 Ajax 組件。由于該組件支持 Ajax,表單的提交是異步執(zhí)行的(即:無(wú)需重新載入與傳統(tǒng)表單提交關(guān)聯(lián)的頁(yè)面)。
如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇