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