如何以角度为管道和地图编写单元测试?

时间:2021-02-09 04:48:10

标签: angular karma-jasmine

我需要以角度为管道和地图编写单元测试。

    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();
        })
      );
  }

有人可以帮我解决这个问题吗?

2 个答案:

答案 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) 方法。