首页 > 解决方案 > 单元测试角

问题描述

有人可以告诉我如何为以下语句编写单元测试吗?!

localStorage.getItem('token') ? (this.isAuthenticated = true) : (this.isAuthenticated = false);

先感谢您!

标签: angulartypescriptunit-testingif-statementconditional-statements

解决方案


您可以在您的测试提供者中添加 LocalStorage 并模拟其内容:

providers: [
  {
    provide: LocalStorageService, 
    useValue: {
      getItem: () => true
    }
  }
]

然后在你的单元测试中:

it('should set Authenticated to true', () => {
  // call your function
  expect(component.isAuthenticated).toBeTrue();
}

如果您希望它返回 false:

it('should set Authenticated to false', () => {
  TestBed.get(LocalStorageService, 'getItem').and.returnValue(false);
  // call your function
  expect(component.isAuthenticated).toBeFalse();
}

推荐阅读