用Web自動化測試框架WatiN進行TDD[1]

發表于:2010-03-02來源:作者:點擊數: 標簽:TddtddTDD自動化框架
用Web 自動化測試 框架WatiN進行 TDD [1] 軟件測試 這兩天聽說了一個很不錯的基于.NET平臺的Web 自動化測試框架 WatiN,下載試用了一下,的確很好用。它的基本功能和 Selenium 有點像,但是不如Selenium強大,沒有腳本錄制,只支持IE6/7等。它基本功能包括自

  用Web自動化測試框架WatiN進行TDD[1]  軟件測試 

   這兩天聽說了一個很不錯的基于.NET平臺的Web自動化測試框架WatiN,下載試用了一下,的確很好用。它的基本功能和Selenium有點像,但是不如Selenium強大,沒有腳本錄制,只支持IE6/7等。它基本功能包括自動操作大部分的HTML元素,多種查找方式,支持AJAX,支持frame/iframe,支持彈出框等等?,F在用一個簡單的例子來看看怎樣使用WatiN來進行TDD。

  在這個例子中,基于Northwind數據庫實現這樣一個功能,通過ID查找某個Customer,列出相關基本信息,然后能夠查找他關聯的所有Order?,F在就來一步一步實現吧。(開發工具是Visual Studio 2008 beta2, 測試框架包括NUnit和WatiN)

  (回憶一下測試驅動開發的幾個步驟:寫測試 --> 測試失敗 --> 編寫實現 --> 測試通過 --> 如有重復代碼進行重構 --> 重復)

  在這里我將上面的功能分為兩步來實現:1. 查找Customer,如果找到就列出信息。 2. 查找關聯的Order。下面先實現第一個部分:

  先想想該頁面需要哪些控件,一個輸入框,用來輸入Customer的ID;一個按鈕,用來查找動作,點擊按鈕以后,如果找到該Customer,就列出他的ID和他的Company Name

  public class FindCustomerAndOrders

  {

  [Test]

  public void ShouldFindCustomer()

  {

  IE ie = new IE("http://localhost:1781/Default.aspx");

  ie.TextField(Find.ById("tb_customerID")).TypeText("ALFKI");

  ie.Button(Find.ById("btn_find_customer")).Click();

  Assert.That(ie.ContainsText("ALFKI"), Is.True);

  Assert.That(ie.ContainsText("Alfreds Futterkiste"), Is.True);

  ie.Close();

  }

  }

  簡單解釋一下,首先創建一個IE,進入頁面,然后查找ID為"tb_customerID"的文本框,輸入文字"ALFKI",然后查找ID為"btn_find_customer"的按鈕并點擊。接下來的兩個斷言表示頁面應該出現"ALFKI"即Customer的ID和"Alfreds Futterkiste"即該Customer的Company Name。最后關閉IE。

  運行測試,由于現在還沒有創建該頁面,測試很明顯不能通過。錯誤信息是沒有找到這個文本框

  現在的目的就是要使測試通過,現在便創建這個頁面,并且添加相應的代碼:

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

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