从测试中调用localstorage clear函数-角度

时间:2018-07-26 10:24:59

标签: javascript angular typescript

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

组件

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

authService

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

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

1 个答案:

答案 0 :(得分:0)

单元测试应该只与您要测试的功能有关。

这意味着您不应该检查是否清除了本地存储:这不是您的组件执行的操作。您的组件将调用您的身份验证服务,然后该服务将清除存储。

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

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

    component.ngOnInit();

    expect(component['authService'].logout).toHaveBeenCalled();
});