我需要以角度为管道和地图编写单元测试。
public getDataById(Id): Observable<Data[]> {
const url = "my url";
return this.authHttpService.get(url, null, this.scope)
.pipe(
map(response => {
this.data= List<Data>(response.body);
return this.data.toArray();
})
);
}
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
这里的问题是我们如何测试使用服务的组件,我们在这里使用管道和映射。第一件事是我们可能需要模拟 authHttpService。您可以按照此了解更多信息:https://codecraft.tv/courses/angular/unit-testing/mocks-and-spies/
现在说到单元测试,我们需要断言一些东西。所以你可以检查 getDataById 是否有你模拟的数据。
我希望这会有所帮助。谢谢。
答案 1 :(得分:0)
首先模拟您的服务以返回模拟数据。调整您的模拟数据,以便可以使用管道和地图进行处理。
const result = {
data: [
{id: 0, name: 'Temp Data 1'},
{id: 1, name: 'Temp Data 2'},
]
};
export class authHttpServiceMock{
constructor() {
}
get() {
return Observable.of(result);
}
}
第二步在规范文件中调用 getDataById(Id) 方法。