2016-09-22 1 views
0

sap.m.Select에 이름이 xyz 인 항목이 들어 있는지 테스트하는 일반적인 작업 아래에서 다음을 선택합니다. 내가 테스트 실행을 시작하면SAPUI5 OPA5 select 이벤트를 트리거하는 방법

success: function(oSelect) { 
    var oItems = oSelect.getItems(); 
    $.each(oItems, function(i,v) { 
     if(oItems[i].getText() === "TestItemNameILikeToSelect") { 
      oTestOpa5TestItem = oItems[i]; 
     } 
    }); 
    if(oTestOpa5TestItem !== null) { 
     oSelect.setSelectedKey(oTestOpa5TestItem.getKey()); 
     oTestOpa5TestItem.$().trigger("tap"); 
    } 
}, 

올바르게 목록에서 적절한 항목을 선택 않으며 브라우저에서 눈에 띄게을 설정하지만 뒤에있는 연결된 이벤트를 트리거하지 않습니다 (예를 들면 변화 = "onListItemChanged") . 내 응용 프로그램이 제대로 작동하지만 작동하는 테스트를 만들 수있는 방법을 찾지 못했습니다.

미리 감사드립니다.

답변

1

OPA5에는 '액션'인터페이스와 두 가지 기본 구현이 있습니다. 'EnterText'와 'Press'.

When.waitFor({ 
    id: "myButton", 
     actions: new Press() 
    }); 

은 당신이 사용하면 '옛날 방식'이지만 몇 가지 단점이 있습니다 :

  • success 블록과 동기화되지 않습니다 권장 사용은이 같은 waitFor() 옵션 상에 action 블록을 정의하는 것입니다 XHR 요청이지만 action입니다.
  • 컨트롤에 클릭/탭 이벤트를 보내려면 일부 내부 요소를 선택해야 할 수 있습니다. 클릭 투 탐색 컨테이너를 상상해보십시오. 실제로 클릭 할 수있는 장소가 몇 가지 있습니다. 액션은 이러한 세부 정보를 처리하고 당신이 의존 할 수있는 표준 행동을 정의합니다.
  • matchers 블록 안에 선택 논리를 캡슐화하고이를 사용자 지정 일치 프로그램으로 추상화하는 것이 더 좋습니다. 이렇게하면 success 블록이 더 깨끗해지며 테스트의 여러 위치에서 정규식을 다시 사용할 수 있습니다.

OPA5 Actions

+0

감사합니다. 짧은 추가 : 드롭 다운 (프레스 이벤트)을 연 다음 키를 설정하고 보이는 요소를 탭하는 것이 필요합니다. – jens

+0

이것은 한 가지 방법이며 분명히 효과가 있습니다. 그러나 OPA5를 사용하면 더 나은 방법이 있습니다. 드롭 다운 컨트롤을 일치시키고 .setSelected() 메서드를 호출하여 필요한 항목을 선택하십시오. – Max

관련 문제