Angular 2 Жасмин Тест не пройден

Новинка как в Angular 2, так и в тестировании ядра.

У меня есть MovieComponent, который использует внедренный MovieService. Пытаясь освоить, так использовали параметры маршрута. Код работает как положено.

describe('MovieComponent', () => {
let component: MovieComponent;
let fixture: ComponentFixture<MovieComponent>;
let options: RequestOptions;
beforeEach(async(() => {
TestBed.configureTestingModule({
  declarations: [ MovieComponent ],
imports: [
HttpModule
],
providers: [
{
  provide: ActivatedRoute, useValue: {
  params: Observable.of({ movieName: 'Bah' })
  }
}, MovieService, Http, {provide: ConnectionBackend},
],
   schemas :[NO_ERRORS_SCHEMA ]
 })
.compileComponents();
}));

beforeEach(() => {
 options = new RequestOptions({method: RequestMethod.Get});
 fixture = TestBed.createComponent(MovieComponent);
 component = fixture.componentInstance;
 fixture.detectChanges();
});

 it('should create', () => {
   expect(component).toBeTruthy();
  });
});

Но я получаю эту ошибку теста:

TypeError: Cannot read property 'getMovies' of undefined

Заранее спасибо.

1 ответ

Вы запускаете его в компиляторе? Это компилируется? Я не думаю что { provide:MovieService }правильно. Просто передайте MovieService, как показано ниже:

providers: [
  {
      provide: ActivatedRoute, useValue: {
      params: Observable.of({ movieName: 'Bah' })
      }
    }, MovieService
  ]

`

Другие вопросы по тегам