2012-02-22 5 views
2

코드화 된 UI 프레임 워크를 사용하여 테스트를 작성할 때 브라우저 창 이외의 컨테이너를 사용하여 컨트롤을 검색하면 어떤 이점이 있습니다.브라우저 기반 UITestControl 컨테이너

예를 들어 설명하기 위해 중첩이 많이 들어간 상당히 복잡한 html이 있다고 가정 해 보겠습니다. 어딘가에 HTML이 같은있다 :

<nested tags (lots of them)> 
    <div id='container'> 
     <a lot of nested tags> 
      <div id="control_I_want"></div> 
      <div id="another_control_I_want"></div> 
     </a lot of nested tags> 
    </div> 
</nested tags (lots of them)> 

내가 빨리 내가 ​​먼저 '용기'를 발견하면 될 것 찾으려는 두 컨트롤에 대한 검색 한 후 사용할 것을 검색의 거점으로 내가 원하는 두 가지 컨트롤? 아니면 내 검색의 기반이되는 브라우저 창만으로 시작하는 것일까? 두 가지 방법으로 코드를 작성하려고했지만 결과가 결정적이지는 않습니다.

코드 나 테스트에 사용 : 당신의 경험에서

HtmlDiv div1 = new HtmlDiv(); 
div1.SearchProperties.Add("Id", "control_I_want"); 
div1.Find(); 

HtmlDiv div2 = new HtmlDiv(); 
div2.SearchProperties.Add("Id", "another_control_I_want"); 
div2.Find(); 

- 다른 것보다 하나의 방법 낫다 : 부모 구성 요소로 브라우저 창을 사용

HtmlDiv cont = new HtmlDiv(); 
cont.SearchProperties.Add("Id", "container"); 

HtmlDiv div1 = new HtmlDiv(cont); 
div1.SearchProperties.Add("Id", "control_I_want"); 
div1.Find(); 

HtmlDiv div2 = new HtmlDiv(cont); 
div2.SearchProperties.Add("Id", "another_control_I_want"); 
div2.Find(); 

와 동일한 코드를? 불행히도 CUIT의 리소스가 부족하여 결정적으로 Google의 도움을받지 못했습니다.

답변

0

여기서는 장단점이 있으며 응용 프로그램과 향후 개발이 어떻게 될지에 따라 다릅니다. 첫 번째 경로는 약간의 성능 차이가 있지만 성능 향상을 위해서는 유연성/유지 관리가 느슨합니다. 상위 컨테이너의 ID가 변경되면 테스트에서 변경해야하지만 두 번째 옵션을 사용하면 테스트가 정상적으로 계속 실행됩니다.

성능이 정말로 중요한 경우에만 첫 번째 경로로 이동하거나 상위 검색 속성을 변경할 가능성이 매우 낮습니다. 그럼에도 불구하고 나는 아마 문제에 더/더 나은 하드웨어를 던지는쪽으로 기울어 질 것이다. 그러나 유일한 검색 속성이없는 컨트롤로 작업 할 때 첫 번째 옵션을 사용하고 작은 컨테이너를 사용하면 올바른 컨트롤을 더 쉽게 선택할 수 있습니다.

관련 문제