未捕获的类型错误:无法读取未定义的引发的属性'filter' 单元测试 Jasmine



我在使用jasmine的单元测试中遇到了这个错误:

未捕获类型错误:无法读取未定义抛出的属性"filter">

我的功能:

info() {
this.requestService.postRequest('Reports', 'getInfo', {})
.subscribe(
data => {
this.places = data.places;
this.types = data.types.filter(obj => obj.id != 20);
this.loading = false;
},
error => {
console.log(error);
this.loading = false;
});
};

测试:

it('When call requestService.postRequest', () => {

spyOn(component.requestService, 'postRequest').and.returnValue(of({}));

component.info();

expect(component.requestService.postRequest).toHaveBeenCalled();
expect(component.requestService.postRequest).toHaveBeenCalledTimes(1);
});

data对象似乎没有types属性(或places属性(。看起来您需要更改

spyOn(component.requestService, 'postRequest').and.returnValue(of({}));

spyOn(component.requestService, 'postRequest').and.returnValue(of({
places: [],
types: []
}));

最新更新