답변

3

그래서 당신은이 현재 오류가 있으며 수정 한 후에는 다른 오류가 발생합니다.

앵커의 click()에 비동기 이벤트 처리가 포함되어 있기 때문에 현재 오류 Expected '' to be '/home'이 있습니다. 그러나 귀하의 기대는 동기식이며 비동기 작업이 완료되기 전에 click() 직후에 발생합니다.

는 테스트 async 할 수 있습니다이 문제를 해결하려면, 다음 click() 후에는 fixture.whenStable()

import { async } from '@angular/core/testing'; 

        // use async 
it('ROUTLINK CLICK', async(() => { 
    fixture.detectChanges(); 
    let links = fixture.nativeElement.querySelectorAll('a'); 
    links[1].click(); 
    fixture.whenStable().then(() => { 
    expect(location.path()).toBe('/home'); 
    }); 
})); 

당신이이 문제를 해결하면 또 다른 문제로 실행을 호출하여 비동기 작업을 위해 기다릴 수 있습니다. 현재 RouterTestingModule에 대해 구성된 경로가 없습니다. RouterTestingModule.withRoutes(Routes)으로 전화하여 설정하십시오. 실제 응용 프로그램 경로를 사용할 수도 있고 원할 경우 테스트를 위해 가짜 경로를 설정할 수도 있습니다. See example.

+0

고맙습니다. – user3518668

관련 문제