每当我调用函数时,我都想测试是否清除了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('{}');
});
有什么办法可以做到这一点?
答案 0 :(得分:0)
单元测试应该只与您要测试的功能有关。
这意味着您不应该检查是否清除了本地存储:这不是您的组件执行的操作。您的组件将调用您的身份验证服务,然后该服务将清除存储。
这意味着您应该测试是否调用了正确的方法。
it('ngOnInit should call auth.logout', () => {
spyOn(component['authService'], 'logout');
component.ngOnInit();
expect(component['authService'].logout).toHaveBeenCalled();
});