Привет, я пытаюсь пройти тестирование моих компонентов в Angular2, но столкнулся с проблемой, когда я пытаюсь высмеять мое обслуживание. В настоящее время я следую за документами Angular2 по тестированию.Компонент Angular2 test
Я называю свой backend API, который я создал из углового сервиса, который работает нормально, пока у меня есть токен JWT. Но когда дело доходит до тестирования, я просто хотел бы издеваться над сервисом в своем тестовом компоненте.
служба
@Injectable()
export class ItemService {
constructor(private _http: AuthHttp, private _store: Store<AppStore>) {}
items(): Observable<any[]> {
return this._http.get(ENDPOINT_ITEMS, {withCredentials: false})
.map((response: Response) => response.json().data);
}
}
Компонентный тест
@Component({
selector: 'items',
template: require('./items.component.html'),
providers: [ItemService]
})
export class ItemsComponent {
items: Observable<Array<Object>>;
constructor(private _service: ItemService) {}
ngOnInit(): any {
this.items = this._service.items();
}
}
Компонент
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [ ItemsComponent ],
providers: [
{ provide: ItemService, useValue: itemsMock },
]
});
fixture = TestBed.createComponent(ItemsComponent);
itemService = fixture.debugElement.injector.get(ItemService)
Я хотел бы мой издевались ItemService вернуть useValue, itemsMock, для меня, так что я могу проверить, что мой В тегах html есть правильные данные. Но это не похоже на то, что мой сервис правильно насмехается?
Получение этой ошибки:
Error: Error in ./ItemsComponent class ItemsComponent_Host - inline template:0:0 caused by: No provider for AuthHttp! in karma.entry.js (line 17341)
Большое вам спасибо! Еще один шаг вперед, и это работает, время для рефакторинга! – mertje