2012-04-12 3 views
0

UIMap.cs (UIMap.Designer.cs 아님)에 필기 코딩 컨트롤을 추가하고 싶습니다. 내가 기록코드화 된 컨트롤을 UIMap (코드화 된 UI 테스트)에 추가

예를 들어

:

public class Recorded_Writing_In_forRecordParams 
{ 
    public string UIForRecordEditText = "forRecord"; 
} 

public class UIMainWindowWindow : WpfWindow 
{ 
    public UIMainWindowWindow() 
    { 
     this.SearchProperties[WpfWindow.PropertyNames.Name] = "MainWindow"; 
     this.SearchProperties.Add(new PropertyExpression(WpfWindow.PropertyNames.ClassName, "HwndWrapper", PropertyExpressionOperator.Contains)); 
     this.WindowTitles.Add("MainWindow"); 
    } 

    public WpfEdit UIForRecordEdit 
    { 
     get 
     { 
      if ((this.mUIForRecordEdit == null)) 
      { 
       this.mUIForRecordEdit = new WpfEdit(this); 
       this.mUIForRecordEdit.SearchProperties[WpfEdit.PropertyNames.AutomationId] = "forRecord"; 
       this.mUIForRecordEdit.WindowTitles.Add("MainWindow"); 
      } 

      return this.mUIForRecordEdit; 
     } 
    } 

    private WpfEdit mUIForRecordEdit; 
} 

내가 내 CodedUITest에서이 컨트롤을 사용하려면 : writing in a texBox, 나는 UIMap.Designer.cs에 다음 코드를 얻을. 자신의 코드로 UIMap.cs에있는 TextBox을 검색하거나 내 TestMethod에서 검색 할 수 있습니까? 가장 좋은 방법은 무엇입니까?

대답에 대한
+0

내가 무엇을 하려는지 알지 못합니다. 왜 UIMap에서 코드의 텍스트 상자를 검색합니까? 또는 응용 프로그램에서 지정된 값의 텍스트 상자를 검색하려고합니까? – stoj

답변

1

감사는, 그러나 나는 다음과 같은 방법으로 내 자신에 내 문제를 해결 :

UIMap.cs

public partial class TestLittleAppUIMap 
{ 
    private MyWindow mMyWindow; 
    public MyWindow MMyWindow 
    { 
     get 
     { 
      if (this.mMyWindow == null) 
      { 
       this.mMyWindow = new MyWindow(); 
      } 
      return this.mMyWindow; 
     } 
    } 
} 

public class MyWindow : WpfWindow 
{ 
    private WpfEdit mWpfEdit; 

    public MyWindow() 
    { 
     this.SearchProperties[WpfWindow.PropertyNames.Name] = "MainWindow"; 
     this.SearchProperties.Add(new PropertyExpression(WpfWindow.PropertyNames.ClassName, "HwndWrapper", PropertyExpressionOperator.Contains)); 
     this.WindowTitles.Add("MainWindow"); 
    } 

    public WpfEdit MWpfEdit 
    { 
     get 
     { 
      if ((this.mWpfEdit == null)) 
      { 
       this.mWpfEdit = new WpfEdit(this); 
       #region Search Criteria 
       this.mWpfEdit.SearchProperties[WpfEdit.PropertyNames.AutomationId] = "forOwn"; 
       this.mWpfEdit.WindowTitles.Add("MainWindow"); 
       #endregion 
      } 
      return this.mWpfEdit; 
     } 
    } 

CodedUI 테스트

[TestMethod] 
public void TestLittleAppOwnMap() 
{ 
    this.UIMap.MMyWindow.MWpfEdit.DrawHighlight(); 
    Playback.Wait(2500); 
} 

그것을 거의 디자이너 클래스의 복사본입니다.

TestMethod에서 직접 검색을 위해이 같이 갈 수 있습니다 :

[TestMethod] 
public void TestLittleAppOwn() 
{ 
    WpfWindow w = new WpfWindow(); 
    w.SearchProperties[WpfWindow.PropertyNames.Name] = "MainWindow"; 
    w.SearchProperties.Add(new PropertyExpression(WpfWindow.PropertyNames.ClassName, "HwndWrapper", PropertyExpressionOperator.Contains)); 
    w.DrawHighlight(); 

    WpfEdit e = new WpfEdit(w); 
    e.SearchProperties[WpfEdit.PropertyNames.AutomationId] = "forOwn"; 
    e.SetProperty("Text","myText"); 
    e.DrawHighlight(); 
    Playback.Wait(2500); 
} 

Playback.Wait는 하이라이트를 보여주는 짧은 대기 시간을 곳.