越使用WatiN越覺得他是一個很好的測試載入器。。。
不過在網上找到的幾個例子都有問題,而且沒講到如何測試Alert快顯視窗。自己研究了一下。終於解決了。做個筆記,以防自己忘記。
有一個註冊頁面,要求輸入一個唯一的Email地址,如果存在了地址,則彈出一個Alert視窗進行提示。下面是測試的步驟。
(我用的單元測試工具是NUnit。Nunit和WatiN一起使用有一個配值問題,參考另一篇文章)
為了簡單我在頁面就放一個Email輸入文字框
使用者輸入郵件地址後,通過ajax在服務端驗證郵件地址是否已經存在,存在則跳出快顯視窗提示郵件存在!下面是測試代碼
public void TestEmail()
{
WatiN.Core.DialogHandlers.AlertDialogHandler dh = new WatiN.Core.DialogHandlers.AlertDialogHandler();
IE ie = new IE("http://localhost/ReisterAndLogin/RegisterUser.aspx");
ie.AddDialogHandler(dh);//增加一個控制控制代碼
ie.TextField(Find.ByName("txtEmail")).TypeText("5a6j@sohu.com");
ie.Button(Find.ByName("btnRegister")).ClickNoWait();
dh.WaitUntilExists();
string mess = dh.Message;
dh.OKButton.Click();//點擊這個視窗的OK按鈕
ie.WaitForComplete();
ie.RemoveDialogHandler(dh);
ie.Close();
Assert.AreEqual("郵件地址已經存在",mess);
}
特別說明的有一些教程說
//dh.WaitUntilExists(3);
但是發現總是會出錯,後來根據官網文檔上的教程應該是使用dh.WaitUntilExists();方法。
現在運行Nunit後,可以自動化的測試這段代碼。方便,省心