Я хочу протестировать простой компонент с некоторыми зависимостями. Поэтому среди других я должен предоставить некоторые провайдеры.
/* tslint:disable:no-unused-variable */
import { By } from '@angular/platform-browser';
import { DebugElement, provide } from '@angular/core';
import {
beforeEach,
beforeEachProviders,
describe,
expect,
it,
inject,
fakeAsync,
TestComponentBuilder
} from '@angular/core/testing';
import { AuthHttp, AuthConfig } from 'angular2-jwt';
import { Router, provideRouter } from '@angular/router';
import { Http, ConnectionBackend, RequestOptions, HTTP_PROVIDERS } from '@angular/http';
import { LogoutButtonComponent } from './logout-button.component';
import { UserService } from '../../services/index';
describe('Component: LogoutButtonComponent', () => {
let component: LogoutButtonComponent;
beforeEachProviders(() => [
LogoutButtonComponent,
Http,
provide(AuthHttp, { useFactory: Http }),
provide(AuthConfig, { useValue: new AuthConfig() }),
ConnectionBackend,
RequestOptions,
UserService
]);
beforeEach(inject([AuthHttp, UserService, LogoutButtonComponent],
(comp: LogoutButtonComponent) => {
component = comp;
}));
it('should inject UserService', () => {
// My test here
});
});
Хотя я получаю следующую ошибку:
Ошибка: не удается разрешить все параметры для "RequestOptions" (?). Убедитесь, что все параметры украшены Inject или имеют действительные аннотации типов и что "RequestOptions" украшен Injectable.
Мне не хватает чего-то из функции beforeEachProviders
?
Примечание. Этот вопрос связан только с Unit Testing Angular 2 с жасмином. Я не ищу информацию, касающуюся загрузочного приложения, поскольку это уже нормально в моем приложении, и здесь есть другие связанные вопросы.