使用Selenium和Castle進行測試驅動開發

發表于:2009-04-02來源:作者:點擊數: 標簽:seleniumSelenium開發Castle驅動
測試驅動開發 ( TD D,Test Driven Development)的例子大多是基于非常簡單的 單元測試 。如何在大規模的應用中使用 TDD 常常是一項挑戰。在本教程中,我們將展示如何使用Selenium和Castle以測試先行原理來構建一個Web應用。 前期準備 比方說,開發者需要應
 測試驅動開發TDD,Test Driven Development)的例子大多是基于非常簡單的單元測試。如何在大規模的應用中使用TDD常常是一項挑戰。在本教程中,我們將展示如何使用Selenium和Castle以測試先行原理來構建一個Web應用。
前期準備        比方說,開發者需要應用“測試先行”的思想,為應用程序編寫一種帶有以下特征的方法:
管理用戶(添加新用戶,刪除,編輯用戶資料,所有用戶列表)

        在該測試用例中,每個用戶都必須擁有一個全名、一個用戶名、一個密碼和一個郵件地址等,所有的信息都是必須的。

基本步驟

        典型的步驟如下:

編寫測試 確保測試失敗 編寫代碼使測試成功 重構 重復以上步驟第一個測試

        第一個要進行的測試是添加新用戶的測試。測試驅動開發與其說是測試的技術不如說是設計的技術,因為當編寫測試的時候,我們將規定代碼或頁面的工作方式,這個過程就是設計。

        對于添加一個新用戶而言,像下面這樣簡單的表單就夠了:

        對于功能測試,開發者需要打開添加頁面(準備階段),填寫表單并保存(執行階段)和確認用戶是否被保存了(項目的確認階段)。為了做到這一點,開發者需要更新頁面,在左側添加一個新的包含用戶信息的列表,以便在點擊“保存”按鈕后可以驗證用戶存在與否。

使用Selenium

        對于像這樣的工作,開發者需要一個能夠適合他們的執行這個行為的工具。Selenium在瀏覽器中可以方便地做到這一點,它也是一個很好的開源工具,可以根據你自己的需要進行修改。Selenium提供了基于Web的功能測試,而且只需要一個為開發人員運行這些行為的編譯器,Selenium就能使這些測試的編寫過程像HTML測試那么簡單:

        對于希望將自己的測試整合到一個持續集成的工具中的開發者而言,最大的喜訊莫過于,他們可以用自己喜歡的語言(如C#、JAVA、VB.NET、Ruby或者Python等)來編寫測試,并利用Selenium的一個名為Selenium RC的擴展實現整合。

比如使用 Selenium RC時,該測試的.NET版如下:

第二步,保證初始的測試失敗

        在這一階段開發者沒有寫任何代碼,因此測試失敗。 首先啟動Selenium RC服務器(一個處理Selenium指令并將它們傳送給瀏覽器的小型java服務器):

>java -jar selenium-server.jar

意料之中,運行的測試失敗:

這是一個好現象,因為這意味著測試在應該失敗時失敗了。否則這次測試就沒有起到任何作用,是毫無意義的。

第三步,編寫代碼

        在TDD實施步驟的第三步中,開發者需要編寫代碼。這意味著當反向測試時,代碼應該不會運行失敗。下一步建立User控制器,然后建立視圖并運行測試:

接著再建立一個空的add.vm,并且重新運行該測試:

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97