2017-11-09 2 views
0

단위 테스트를 시도하고 한 테스트에서 포커스/입력 텍스트 상자를 클릭하고 싶습니다. 입력 텍스트를 클릭하면 모달이 열리고 동작이 발생하는지 확인하기 때문입니다.각도 4 단위 테스트 입력 텍스트 상자 (동작) 클릭/포커스

이것은 e2e 테스트에서 가능할 수 있지만 요구 사항 때문에 단위 테스트에서이를 달성하려고합니다. 테스트 베드 모듈 구성 미세라고 가정

HTML 템플릿

<input type="text" class="search"/> 

component.spec.ts

.

... 
it('focus the input element',() => { 
    let searchTextBox: DebugElement = this.fixture.debugElement.query(By.css('search')).nativeElement; 
    serachTextBox.click(); // is this possible or anything else 
    fixture.detectChanges(); 
    ... 
}); 

전체 코드를 공유 할 수 없어 죄송합니다.

+0

예. 가능합니다. 나는 당신이 어떤 메소드를 호출하는 입력 박스를 클릭 할 때, 당신의 테스트는 그 메소드를 spyon해야하고, 호출 될 것으로 기대한다고 가정한다. 다른 테스트를 작성하여 모달 열기 구현을 테스트 할 수 있습니다. 나는 클릭이 올바른 방법을 호출하는 것에 대해서만 관심을 가질 것이다. 내 유일한 관심사는 입력 상자를 클릭하여 모달을 표시하는 것입니다. – Maccurt

+0

두 번째 생각에 나는 모달을 여는 서비스를 – Maccurt

답변

0
... 
it('focus the input element',() => { 
    let searchTextBox: DebugElement = this.fixture.debugElement.query(By.css('search')).nativeElement; 
    spyOn(someObject,'showModal') 
    serachTextBox.click(); // is this possible or anything else 
    expect(someObject.showModal).toHaveBeenCalled(); 
    ... 
});