我正在尝试测试以下功能:
getencomenda(): void {
const _id= this.route.snapshot.paramMap.get('_id');
// const _id2 = +this.route.snapshot.paramMap.params._id;
this.encomendaService.getencomenda(_id)
.subscribe(encomenda => this.encomenda = encomenda);
}
这是我的考验:
describe('getencomenda', () => {
it('makes expected calls', () => {
const encomendaServiceStub: encomendaService = fixture.debugElement.injector.get(encomendaService);
spyOn(encomendaServiceStub, 'getencomenda');
comp.getencomenda();
expect(encomendaServiceStub.getencomenda).toHaveBeenCalled();
});
});
而且我收到以下错误:TypeError:无法读取未定义的属性“ subscribe”
答案 0 :(得分:0)
您正在监视该方法,但不要告诉茉莉花被调用时该怎么做。这意味着茉莉花会记录对该函数的调用,但不会调用您正在监视的真实函数,因此此类调用将返回undefined而不是Observable。错误只是确认您无法订阅未定义的值。
因此,您不仅需要指示茉莉花来监视该函数,而且还要调用原始函数或返回一些可观察的模拟函数响应:
free
或
spyOn(encomendaServiceStub, 'getencomenda').and.callThrough();