2016-08-26 4 views
2

터치 이벤트에 대한 테스트 케이스를 작성하고 싶습니다. 내 코드에는 터치 장치에 있는지 여부를 결정하는 다음과 같은 논리가 있습니다. 데스크톱 브라우저를 사용하여 터치 이벤트를 테스트하는 방법은 무엇입니까?

if(document.documentElement.ontouchstart !== undefined) 
{ 
//content that I want to write test cases about 
} 

는 지금은 undefined 수 없습니다 document.documentElement.ontouchstart 가짜하려는, 그래서 내부 논리가 실행됩니다.

Sinon.jsstub을 사용하여 document.documentElement.ontouchstart에 빈 기능을 할당하려고했습니다. 그러나 "TypeError : 정의되지 않은 속성을 래핑하려고 시도했습니다. ontouchstart을 함수로 사용합니다"라는 메시지가 표시됩니다. document.documentElement에는 브라우저에 이러한 속성이 없습니다.

다른 테스트 케이스에 영향을 미치기 때문에 내 테스트에서 document.documentElement.ontouchstart = function() {..}과 같은 것을 쓰고 싶지는 않습니다. 물론 원래 값을 저장하고 테스트 케이스가 끝나면 값을 복원 할 수 있습니다. 그러나 나는 이것을 묻는 더 우아한 방법이 있습니까?

if 진입하는 방법은?

+0

onmousedown 이벤트를 위해/trigger를 호출 할 수 있습니다. ontouchstart –

+0

@ABUdhay하지만 if 논리 내부의 논리를 확인하고 싶습니다. 'onmousedown '을 방아쇠하면'if' 문이 참이되지 않습니다. – JasmineOT

+0

그건 기본적으로 DOM에 없을거야. 당신은 document.documentElement.ontouchstart = function() {// 여기에서 onmousedown의 콜백 함수를 호출하거나 mousedown 이벤트 핸들러를 트리거해야합니다 method} –

답변

2

은 개발자 도구에서이 버튼을 활성화하여 Chrome의 기기 도구를 사용합니다.

이미지 enter image description here

이것은 모바일 환경에서 같은 디버깅 할 수 있습니다.

+0

이렇게하면,'document.documentElement.ontouchstart'는 여전히'undefined'입니다. 그리고 이런 식으로 정의 된 경우조차도, qunit에게 이런 식으로 테스트 케이스를 실행하도록 말할 수는 없습니다. – JasmineOT