MdDialogRef 및 서비스가 주입 된 구성 요소를 테스트하는 데 문제가 있습니다. 이 구성 요소가 주입 된 서비스를 호출하고 있는지 테스트하고 싶습니다. 문제는 주입 MDDialogRef와 구성 요소는 다음과 같이 검색 할하기 때문에 나는 보통MdDialogRef가 삽입 된 테스트 구성 요소가 호출 서비스입니다.
fixture = TestBed.createComponent(...);
component = fixture.componentInstance;
service = fixture.debugElement.injector.get(Service);
과 서비스를 검색 할 수 있다는 것입니다 : 이것은 MdDialogRef, 대한 해결 방법입니다
dialog = TestBed.get(MdDialog);
dialogRef = dialog.open(CompanyLogoComponent);
component = dialogRef.componentInstance;
하는 'MdDialogRef에 사용할 수있는 공급자가 없습니다'라고 말하면서 많은 매개 변수가 필요한 경우를 말합니다. (어쩌면이 작업을 수행 한 후 고정을 사용하는 방법을 더 나은 방법이 무엇입니까?)
그래서, 가능한 고정이와 ... 서비스를 검색하지 않으려면 'debugElement.injector를 ...'
서비스를 주입,
it('method should call service', inject ([Service], (service: Service) => {
expect(service).toBeTruthy();
spyOn(service, 'method').and.callThrough();
component.methodCallingService();
expect(service.method).toHaveBeenCalled();
}));
내가 여기에 구성 요소로 범위를 결합 또는 구성 요소 (dialogRef.componentInstance)를 통해 서비스를 검색 할 수있는 방법 어떤 생각을 : 스파이가 반응하지 않기 때문에 나는 다른 범위가?
와우, 고마워, 그 작품 :)! – Nadine
정말 도움이됩니다. 감사합니다. – agriboz