Angular 지시어에 대한 몇 가지 테스트를 작성 중이며 사용자 입력을 입력 필드로 시뮬레이트해야합니다. 나는 이것을 시도했다 :수동으로 입력 필드에 대한 각도 데이터 바인딩 트리거 (단위 테스트 목적으로 만 사용)
element.find('input').val('some value').trigger('input');
그러나 그것은 작동하지 않았다. 트리거 change
도 작동하지 않았습니다. element.scope()
을 사용하여 요소 범위에 직접 액세스 할 수 있다는 것을 알고 있지만 입력 값을 변경하고 Angular가 데이터 바인딩을 수행하는 것이 더 자연스러운 것처럼 보입니다.
, 나는 각도 ngScenario으로부터 input(name).enter(value)
확인했습니다, 그리고 내가했던 것과 같은 행동을 할 것 같다
...
input.val(value);
input.trigger(event || (supportInputEvent ? 'input' : 'change'));
...
나는 무엇을 놓치고? 이 경우 사용자 입력을 테스트하는 더 좋은 방법이 있습니까?
내가 약간의 설명이 필요하다 생각UPDATE
(I 질문을 설명하기 위해 a jsFiddler script을했다). 나는 DOM이나 스코프를 변경하려고 시도하지 않고있다. Angular realm 그 자체는이다. 지시문 범위의 속성에 입력 상자를 바인딩하는 지시문이 있습니다. 지시문이 수행해야 할 작업을 수행하도록 자동화 된 테스트를 작성 중이며, 한 가지 테스트는 지시문 범위가 업데이트되도록 일부 입력을 시뮬레이트하고 해당 입력에 대해 일부 동작이 수행된다고 주장 할 수 있습니다. 이전에 언급했듯이 element.scope()
을 사용하여 테스트 코드에서 지시문의 범위를 변경할 수 있지만 입력 값을 변경하여 Angular로 처리하도록합니다.
지침을 어떻게 테스트합니까? 입력 이벤트를 트리거하는 방식이 나에게 맞습니다. 테스트 파일에서이 작업을 수행하고 있습니다. – ghiden
@ghiden 나는 이미 내 질문에 답을했습니다 - 아래를보십시오. 그래도 관심을 가져 주셔서 감사합니다. :) –