茉莉花:无法读取未定义的属性“ api”

时间:2018-06-28 21:39:06

标签: angular unit-testing jasmine karma-jasmine ag-grid

我有一个使用ag-grid来显示数据的应用程序。这些数据只是用户信息,例如他们的姓名和电子邮件。我正在为组件类中的其中一个功能编写测试。我的功能是这样的:它使用getData服务从URL中检索用户列表。然后将这些用户输出到ag-grid。我的测试正在尝试完全模拟。这是我的组件类中的函数:

  getUsers() {
    this.userService.getData(url_UserList).subscribe(res=>  
    this.rowData = res;
    this.redrawAgGrid();
   }

现在这是我的测验:

 fit('should call getData and return list of users', async(() => {
    const response: Test[] = [];

    spyOn(httpService, 'getData').and.returnValue(of(response));

    dashboardComponent.getUsers();

    fixture.detectChanges();

    expect(dashboardComponent.rowData).toEqual(response);
  }))

我的测试应该通过,rowData应该等于响应。  在线:dashboardComponent.getUsers()我收到错误:无法读取未定义的属性“ Api”

1 个答案:

答案 0 :(得分:0)

所以,如果有人碰巧遇到这个问题,我就解决了。就像我说的那样,Jasmine在AGGrid上遇到了麻烦。为了解决这个问题,在我的测试中,我添加了以下行:spyOn(component'redrawAgGrid');通过在线研究,api错误通常是由于未调用redrawAGrid方法造成的。