![](/img/trans.png)
[英]How to test .subscribe method using jasmine karma unit testing where angular components is interacting with service?
[英]Covering unit test for array with .find method in angular using karma and jasmine
无法在 angular 8 中使用 karma 和 jasmine 在规范文件中覆盖以下代码段
myMethod(id: number): boolean {
const data= this.myService.getSampleData();
return data.find(item => item.id === id).count;
}
规格:
it('should call myMethod ', () => {
spyOn(myService,'getSampleData').and.returnValue(of([{id:1,count:10}]))
component.myMethod(1);
});
它抛出无法读取未定义的属性 .find。 虽然我试过 spyOn(myService,'getSampleData').and.returnValue(of([{id:1,count:10}])) 进入 beforeEach 函数,但没有运气
您的方法期望获得一组项目。 但是你从你的间谍那里返回 Observable < Array< Item>> 。 试试这个spyOn(myService,'getSampleData').and.returnValue([{id:1,count:10}])
第一个问题是,你正在使用返回一个可观察of
,当服务似乎返回项目的数组。
其次,您没有做任何期望来验证测试中的某些内容。
我会这样做:
it('should call myMethod ', () => {
spyOn(myService,'getSampleData').and.returnValue([{id:1, count:10}]);
expect(component.myMethod(1)).toEqual(true);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.