摘要:在Silverlight中做單元測試
【原文位址】Unit Testing with Silverlight
【原文發表日期】 Wednesday, April 02, 2008 2:01 AM
我們在Silverlight 2 Beta1 版本中發佈的一個重要的功能是允許你進行API層次和介面層次單元測試的單元測試用具(unit test harness)。這個測試用具是跨瀏覽器和跨平台的,可以用來快速執行和核實自動化的單元測試:
除了發佈Silverlight的這個單元測試用具外,我們還發佈了用它建造的,對在Permissive License許可下發佈的Silverlight控制項程式碼提供了自動化測試涵蓋的2千個左右單元測試的原始碼。這個許可允許你將控制項的原始碼進行修改,執行單元測試核實其行為,並且以任何形式重新發佈這些控制項。
學習如何以單元測試方式測試Silverlight程式
Jeff Wilcox,Silverlight單元測試框架和用具的開發者,在這裡發表了一篇精彩的部落格文章,討論如何在解決方案中加一個Silverlight Unit Test專案。你可以從我上個月撰寫的這篇Expression Blend教程文章上下載他用來示範測試的聊天應用。你也可以觀看Jeff錄製的這個很酷的錄影文章,在其中他對該單元測試框架和我們發佈的測試案例做了示範。
就像Jeff在他的文章裡展示的那樣,你現在可以往你的Visual Studio解決方案中加一個「Silverlight測試專案」,該專案封裝針對你正開發的應用的單元測試:
然後你可以往測試專案中添加單元測試類,來測試API或模擬Silverlight控制項中的介面動作(例如模擬按鈕點擊等)。
然後你可以執行測試專案,執行其中的測試,來核實和匯報它們的狀態。
Jeff的測試框架自動地提供基於瀏覽器的測試用具和報告系統(意味著你可以在任何能執行Silverlight的瀏覽器或OS組合上執行它):
Jeff的測試框架支援在每個測試後快速重置控制項(以及避免對每個測試案例重啟新的瀏覽器實例,這使得測試非常快)。
你可以在幾秒鐘內很快地突過成百上千個自動化的測試:
綠的結果意味著測試都通過了。紅的結果表示某個測試案例失敗了,同時記錄斷言失敗(assertion failure)以及出現的執行時異常。
結語
如果你曾有困難採取策略對AJAX應用進行自動化的單元測試或TDD的話,我認為你會發現Silverlight提供了一些極棒的測試選項。使用Visual Studio,你還可以將測試分離到你的解決方案的另外的專案中去,你不需要在你的Silverlight應用嵌入測試就可以執行它們。
除了支援上述的單元測試用具和框架外,我們還將在Silverlight 2的最終版中支援UI自動化APIs。這些API將促成accessibility的場景(允許螢幕閱讀器可以用於Silverlight,以及促成Silverlight應用對Section 508的相容性)。這些UI自動化API還將促成這樣的UI測試場景,你可以建造end to end的瀏覽器介面自動化,來模擬真正的滑鼠和鍵盤交互,促成自動化的end to end體驗的測試。這些組合應該允許你建造極其堅固和可維護的RIA方案。
希望本文對你有所幫助,
Scott
附註: 想找到有關Silverlight 2更多的教程文章和連結的話,請參閱我的新《Silverlight 技巧,訣竅,教程和連結》 網頁。