无法读取未定义的属性“登录”-测试间谍-Angular2 +

时间:2018-08-03 12:50:31

标签: javascript angular typescript

我正在尝试从login()内部监视auth.service的{​​{1}}功能,并且试图简化间谍程序。

我收到错误:

  

TypeError:无法读取未定义的属性“ login”           在LoginComponent.onSubmit src / app / components / login / login.component.ts:28:30)

login.spec.ts

login.component

2 个答案:

答案 0 :(得分:1)

创建一个包含您的服务值的模拟并将其提供给您的测试平台(就像您已经在做的那样):

const mockAuthService = {
  login: () => of(null),
  logout: () => of(null)
};

现在,您可以监视方法:

spyOn(component['authService'], 'login');
...
expect(component['authService'].login).toHaveBeenCalled();

答案 1 :(得分:0)

我通过移动这行代码解决了这个问题: mockAuthService = jasmine.createSpyObj(['login', 'logout']);beforeEach块顶部。

相关问题