Angular 2和核心測試都是新手。角2茉莉花測試失敗
我有一個使用注入MovieService的MovieComponent。試圖學習,如此使用的路由參數。代碼按預期工作。
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
在此先感謝。
我假設你的電影服務有一個名爲getMovies方法。無論你傳遞什麼東西都沒有這種方法。我可以建議你嘲笑電影服務,並提供你自己的價值或類(useClass或useValue)。你只是在測試組件,所以你可能應該嘲笑服務。 – Maccurt
也是你的電影服務返回一個可觀察或承諾? – Maccurt