각도 조절 e2e 테스트 - 계속하기 전에 주요 이벤트가 완료될 때까지 기다립니다.
일련의 UI 이벤트를 트리거하는 각 e2e 테스트를 작성하는 사람들은 어떻게 합니까?시나리오의 비동기적인 특성으로 인해 그것이 어려워지는 것 같습니다.
세부사항:특수 폼의 편집을 빠르게 하기 위해 키 조작이 많은 앱에 대한 테스트를 작성하고 있습니다.시나리오 DSL(아래 참조)에 대한 키보드 확장을 조합했지만 테스트의 첫 번째 키 이벤트만 효과가 있습니다.
keyboard().keydown(null, 'keydown', 40, false, true); // ctrl-down
expect(element('*:focus').text()).toEqual('00:04');
keyboard().keydown(null, 'keydown', 40, false, true); // ctrl-down
expect(element('*:focus').text()).toEqual(''); // but equals 00:04
두 번째 키 다운은 키를 라우팅할 포커스를 찾을 수 없기 때문에 아무 것도 하지 않습니다(화면에 포커스가 있지만).혼란스러운.
angular.scenario.dsl('keyboard', function() {
var chain = {};
chain.keydown = function(selector, keyEvent, keyCode, shift, ctrl) {
return this.addFutureAction("keyEvent", function($window, $document, done) {
var jQuery = $window.$;
var e = jQuery.Event(keyEvent);
e.keyCode = keyCode; // # Some key code value
e.altKey = false;
e.ctrlKey = ctrl;
e.shiftKey = shift;
if (selector == null) selector = '*:focus';
var j = jQuery(selector);
if (j == null) j = jQuery('body');
j.trigger(e);
done();
});
};
return function() {
return chain;
};
});
사용자는 이 질문을 포기한 것 같습니다만, 말씀드렸듯이 이것은 이벤트 핸들러의 문제일 것입니다.
정확히 같은 코드로 모든 것이 예상대로 작동하도록 만들었다.
언급URL : https://stackoverflow.com/questions/13705104/angular-scenario-e2e-testing-waiting-for-key-events-to-complete-before-proceed
'programing' 카테고리의 다른 글
어레이를 JSON 문자열로 빠르게 변환 (0) | 2023.03.16 |
---|---|
파일 이름이 jsx인 경우 웹 팩에서 모듈을 찾을 수 없습니다. (0) | 2023.03.16 |
스프링 부트 시 안정 컨트롤러에서html 페이지를 반환하는 방법 (0) | 2023.03.16 |
WordPress 4.7.2로 업데이트할 수 없음 - 오류: 일관성 없는 파일 권한 (0) | 2023.03.16 |
Google 분석 코드의 PHP 코드가 제대로 실행되지 않는 이유는 무엇입니까? (0) | 2023.03.16 |