摘要:Visual Studio 2010 Code UI Test 應用技巧(1)
Code UI Test 可以用來將測試動作轉換為程式碼
轉換過後的程式碼可以做進一步的修改
但是轉換出來的程式碼有時會遇到TextBox無法填入值的問題
會出現Cannot perform 'SetProperty of Text with value "XXX"' on the control 錯誤
如圖:
通常這是因為TextBox有與AJAX或者jQuery等結合 而且在輸入TextBox的過程中
TextBox的內容被變更或者Focus被移走 如此會造成錯誤
修正方法為修改程式加入PlaybackSettings.SkipSetPropertyVerification方法
將設定文字後的驗證檢查動作關閉
以下是修改前的程式碼範例
1 public void CodedUITestMethod1()
2 {
3
4 this.UIMap.HoldFirstMethod();
5 this.UIMap.UIHttpiacpqmtestiacpiaWindow.UIRightFrameFrame.UIReelIDReuseDocument.UITxtReelIdEdit.Text= TestContext.DataRow["ReelID"].ToString();
6
7 this.UIMap.HoldLastMethod();
8 }
2 {
3
4 this.UIMap.HoldFirstMethod();
5 this.UIMap.UIHttpiacpqmtestiacpiaWindow.UIRightFrameFrame.UIReelIDReuseDocument.UITxtReelIdEdit.Text= TestContext.DataRow["ReelID"].ToString();
6
7 this.UIMap.HoldLastMethod();
8 }
修改後為
01 public void CodedUITestMethod1()
02 {
03
04 this.UIMap.HoldFirstMethod();
05
06 Playback.PlaybackSettings.SkipSetPropertyVerification = true;
07 this.UIMap.UIHttpiacpqmtestiacpiaWindow.UIRightFrameFrame.UIReelIDReuseDocument.UITxtReelIdEdit.Text= TestContext.DataRow["ReelID"].ToString();
08
09 Playback.PlaybackSettings.SkipSetPropertyVerification = false;
10
11 this.UIMap.HoldLastMethod();
12 }
02 {
03
04 this.UIMap.HoldFirstMethod();
05
06 Playback.PlaybackSettings.SkipSetPropertyVerification = true;
07 this.UIMap.UIHttpiacpqmtestiacpiaWindow.UIRightFrameFrame.UIReelIDReuseDocument.UITxtReelIdEdit.Text= TestContext.DataRow["ReelID"].ToString();
08
09 Playback.PlaybackSettings.SkipSetPropertyVerification = false;
10
11 this.UIMap.HoldLastMethod();
12 }
風來疏竹,風過而竹不留聲;雁度寒潭,雁去而潭不留影。故君子事來而心始現,事去而心隨空。