1

我想测试localStorage每当我调用我的函数时是否清除了。

零件

ngOnInit() {
    // Logout on reaching login screen so we can login
    this.authService.logout();
  }

身份验证服务

logout() {
    // remove logged in user from localStorage
    localStorage.removeItem('currentUser');
  }

测试

fit('ngOnInit should logout user stored in localStorage', () => {
    // Exmample data stored as token
    localStorage.setItem('token', 'someUserToken');

    component.ngOnInit();

    expect(localStorage.getItem('token')).toEqual('{}');
});

有什么办法可以做到这一点?

4

1 回答 1

0

单元测试应该只关注你正在测试的特性。

这意味着您不应该检查本地存储是否已清除:这不是您的组件所做的。您的组件调用您的身份验证服务,然后清除存储。

这意味着您应该测试是否调用了正确的方法。

it('ngOnInit should call auth.logout', () => {
    spyOn(component['authService'], 'logout');

    component.ngOnInit();

    expect(component['authService'].logout).toHaveBeenCalled();
});
于 2018-07-26T10:29:07.813 回答