|
回顧
最近比較忙,距離上次更新的時間較久,見諒。
在本章上部分,介紹了“添加用戶”窗口的測試代碼編寫。想必大家也看到了,在UIMap.cs文件中實現自定義編碼是一件很輕松的事情,接下來將介紹下個部分,查詢用戶窗體的測試代碼的編寫,以及他們測試的關聯。
示例程序介紹
系統主窗口:(下載點我)
該系統擁有兩個功能,“添加用戶”和“查詢用戶”:
點擊添加用戶后,進入添加用戶子窗體:(“添加用戶”窗口的測試代碼編寫在上部分已經實現)
如果在之前的主窗口,點擊查詢用戶,則進入查詢用戶子窗體:
注:系統默認自帶了5個用戶TestUser1, TestUser2, TestUser3, TestUser4, TestUser5。
這個窗體不會彈任何提示框,默認進入窗體時,DataGridView里面沒有加載數據,現在進行一個說明:
查詢條件-用戶名:表示是否按用戶名查詢(非模糊查詢),如果不輸入,默認為不按其查詢。
查詢條件-用戶類型:有三個選項“所有”,“管理員”,“一般用戶”。
查詢條件-日期:表示是否按日期查詢,如果勾上了日期CheckBox,則旁邊的DateTimePicker會啟用,然后選擇一個具體的日期。
按鈕-查詢:就會按以上條件查詢。
按鈕-重置:用戶名清空,用戶類型變成所有,日期取消勾選。
文本框-用戶備注:當查詢出數據以后,每選擇DataGridView里面中的一行數據,用戶備注TextBox會自動加載當前行的用戶備注。
如何設計測試
現在需要明確的就是,我們既需要檢查“查詢用戶”窗口的基本功能,又需要確定之前在“添加用戶”窗口添加的用戶是否被添加了進來,所以這里的檢查尤其重要,根據剛才的功能描述,現在需要編寫測試設計。(在看下面的設計之前大家可以先試著自己設計下) 。
自動化測試,關鍵不在技術,而是在測試設計上,所以這里需要設計得比較全面:
步驟序號 | 操作步驟 | 檢查點 |
1 | 在主窗口菜單點擊用戶查詢 | 檢測查詢用戶子窗口是否彈出 |
2 | 用戶名為空,用戶類型為“所有”,不勾選時間,點擊查詢,記錄查詢出的用戶行數,程序默認選中第一行,這時我們選中第二行 | 檢測“用戶備注”一列的值是否和下方的“用戶備注”文本框的值一致 |
3 | 加的用戶,其他條件不變,點擊查詢(例如,在上個部分的示例中,我們使用的是”TestUser6”) | 查詢出用戶名為TestUser6的一條數據 |
4 | 用戶名為一個不存在的用戶“testuser100”,其他條件不變,點擊查詢 | 未查詢出數據 |
5 | 將用戶名設置為空,其他條件不變,用戶類型為“管理員”,記錄查詢出的行數 | 查詢出所有為“管理員”的用戶(注,為了方便,這里沒有使用從數據庫比對,而只使用查詢條件與查詢出的數據比對,實際項目中可能使用數據庫比對) |
6 | 將用戶類型設置為“一般用戶”,其他條件不變,記錄查詢出的行數 | 查詢出所有為“一般用戶”的用戶 |
7 | 使用剛才用戶類型分別為“所有”,“管理員”,“一般用戶”查詢出的數據行數,進行比對 | 一般用戶行數+管理員用戶行數=所有用戶行數 |
8 | 用戶名為空,用戶類型為“所有”,勾選時間,并進行選擇“2008-1-11” | 查詢出所有添加時間為“2008-1-11”的用戶 |
9 | 將條件設置為剛才我們在添加用戶窗口添加的用戶信息(使用我們在上一個示例中使用的值,如”TestUser6”,”一般用戶”,時間為添加時間,時間這個需要用到某個變量來記錄) | 查詢出對應的一條數據 |
10 | 點擊重置按鈕 | 用戶名為空,用戶類型為“所有”,不勾選時間 |
11 | 點擊退出 | 退出窗口 |
接下來將以上的檢查點轉換為代碼。
對測試進行編碼
我們可以接著上次錄制的代碼來編寫,因為在上個部分對于某些編寫方式(例如先捕獲對象再編寫和先錄制再轉移修改的方式)已經描述得很詳細了,下面默認使用這些方式,因此就不一一闡述對象的捕捉過程了。這里只介紹上個部分沒有介紹的注意點和和給出主要代碼。
由于是接著上個部分的代碼寫,這里需要注釋掉AddUserUIMap.cs中Step7_CloseWindows的兩句代碼,以免他在測試結束后將主窗口關閉掉:
public void Step7_CloseWindows()
{
//操作步驟
bool isClosed;
Mouse.Click(this.UI添加用戶Window.UI取消Window.UI取消Button, new Point(1, 1));
//和WaitForControlExist相反,這里是最長等待他3秒關閉,如果3秒內關閉返回true,否則為false
isClosed= this.UI添加用戶Window.WaitForControlNotExist(3000);
// 這里添上了注釋,以免將主窗口關閉掉
// Mouse.Click(this.UI系統主窗口Window.UI系統主窗口TitleBar.UICloseButton, new Point(1, 1));
// isClosed &= this.UI系統主窗口Window.WaitForControlNotExist(3000);
//檢查點
Assert.IsTrue(isClosed, "點擊退出,檢測是否退出添加用戶子窗體和主窗體失敗");
}
NET技術:VS2010 測試功能之旅:編碼的UI測試(4)-通過編寫測試代碼的方式建立UI測試(下),轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。