開發環境:html
Widnows8c#
Microsoft Visual Studio Ultimate 2012dom
1. 新建一個 Windows Forms Applicationssh
Figue1 Create a new Windows Forms Applicationide
2. 設計界面如(Figue2)所示工具
Figue2 Form UI單元測試
界面很簡單,含有兩個Label:測試
Label1.Text = 「Username」;ui
Label2.Text = 「Password」;this
三個輸入框:
tbUsername,tbPassword,tbResult
一個按鈕:
btnLogin
添加代碼邏輯,實現用戶點擊Login按鈕時,把用戶輸入的用戶名,密碼輸出到tbResult裏:
private void btnLogin_Click(object sender, EventArgs e) { tbResult.Text = "Username is "+tbUsername.Text + Environment.NewLine + "Password is "+tbPassword.Text; }
上述步驟完成後,編譯剛新建的這個項目,找到Bin目錄,把生成的.EXE文件發送快捷方式到桌面,方便後邊使用.
3.添加CodeUI測試項目
Figue3 Add new Project
4.步驟三點擊OK後彈出以下窗口
Figue4 Generate Code for Coded UI Test
5. 保持默認,直接點擊OK按鈕
Figue5 UIMap - Coded UI Test Builder
如上圖所示,共顯示四個按鈕,依次分別表示:
開始錄製Start Recoding(Alt + R),
顯示錄製的步驟Show Recorded Steps(Alt + S),
添加斷言Add Assertion(Alt + U),
生成代碼Generate Code(Alt + G)
6.點擊錄製,開始錄製
點擊錄製按鈕後開始錄製,
打開桌面上的應用程序(第一步,第二步建立的簡單的WinForm應用程序),
而後在tbUsername框中輸入"Username",
按下Tab鍵,繼續在tbPassword文本框中輸入Password
鼠標點擊Login按鈕,如圖6所示
Figue6 typing when Recording
上述步驟中包括鼠標事件,鍵盤事件均被錄製成了一個一個的步驟Step,你能夠點擊"顯示錄製的步驟"按鈕查看錄製了哪些步驟
Figue7 Recorded Steps
上述Steps列表中的條目能夠右鍵進行刪除,好比Click ‘Minimize’ button這個是我最小化當前Windows Live Writer窗口時錄製下來的,這個其實沒必要要的
7.結束錄製直接點擊*生成代碼*按鈕便可,在隨後彈出來的提示框中輸入方法名稱,如圖8所示
Figue8 Generate Code
點擊"Add and Generate"按鈕後,VS自動生成以下單元測試代碼:
[TestMethod] public void CodedUITestMethod1() { // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items. // For more information on generated code, see http://go.microsoft.com/fwlink/?LinkId=179463 this.UIMap.RecordedMethod3(); }
這裏咱們添加一個步驟:驗證tbResult的內容正是咱們想要的內容,即增長一個斷言Assertion
此時UIMap工具中查看錄製步驟的按鈕置灰不可用,原來置灰的新增斷言按鈕如今可用了,以下圖箭頭所指
Figue9 Add Assertion
鼠標點擊"新增斷言"按鈕,保持鼠標按下的狀態,將其十字標拖至tbResult控件上
以下圖10所示
Figue10 To generate assertions for your UI controls, click the crosshairs icon and drag it to the control that you want to verify is correct.
在添加斷言窗口找到tbResult的Text屬性,右鍵添加斷言
Figue11 Right Client on Text Property to add assertion
保持下圖中的默認內容不變,直接點擊OK按鈕
Figue12 Add assertion for Text
再次擊點生成代碼按鈕,彈出提示框(Figue14)
Figue13 Click Generate Code button for Generating assertion Codes
在彈出的提示框中輸入斷言代碼的方法名稱,點擊Add and Generate按鈕,回到VS找到它:)
Figue14 Generate assertion codes
原方法變成以下所示
[TestMethod] public void CodedUITestMethod1() { // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items. // For more information on generated code, see http://go.microsoft.com/fwlink/?LinkId=179463 this.UIMap.RecordedMethod3(); this.UIMap.AssertMethod2(); }
8.運行單元測試
鼠標停留在CodedUITestMethod1塊內右鍵選擇Run Tests,或者使用組合快捷鍵,Ctrl + R,T運行單元測試
稍微有點慢,耐心等候,期間最好不用動鼠標和鍵盤,它就會把剛纔錄製的過程再重複一遍.
至此,咱們完成了一個簡單的自動化測試的小例子.