나는 재스민에 다음 코드를 가지고 :Angular2에서 detectChanges()를 올바르게 구현하는 방법은 무엇입니까?
it('should pass on writing secondvalue in the input', async(() => {
const fixture=TestBed.createComponent(AppComponent);
const app=fixture.debugElement.nativeElement.querySelector("input").getAttribute("value");
expect(app).toContain("firstvalue");
fixture.detectChanges();
expect(app).toContain("secondvalue");
}));
문제는 내가 테스트를 실행하자마자, 테스트가 실패한다는 것입니다. detectChanges()로 인해 기다리기를 기대하지만 그렇지 않습니다.
어떻게 올바르게 구현합니까? 입력에 대한 두 번째 값 입력을 기다리고 값이 "secondvalue"가 될지 확인하십시오.
fixture.detectChanges()은 짝수 차단기처럼 작동하지 않아야합니다. 예를 들어, 누군가가 입력을 시작할 때 입력이 트리거 될 때까지 기다리는 것과 같이?
새 값을 명시 적으로 넣어야한다는 뜻입니까? 카르마 러너의 의견에 넣을 수 있습니까? – masterach
@masterach 값을 테스트하기 전에'fixture.detectChanges()'를 호출 할 필요가있을 것입니다. 또한 명확하지 않지만 구성 요소가 어떻게 생겼는지, 값이 어떻게 바뀌 었는지도 알 수 있습니다. – hlfrmn