我的ts文件中有一个函数可以更改布尔值,但不返回值。我不知道如何在spec.ts文件中测试这个函数。
这是ts文件中的函数:

doesUserExist(username: string) {
  this.data.getUser(username).subscribe(data => {
    this.searchedUserExists = true;
  }, err => {
    this.searchedUserExists = false;
  });
}

这是我在spec.ts文件中尝试过的:
it('testIfUserExistsIsFalse', () => {
  let searchedUserExists: boolean;
  service.doesUserExist('falsegithubusername123');
  expect(searchedUserExists).toBeFalsy();
});

最佳答案

如果服务的属性不是私有的,则可以直接访问它们

it('testIfUserExistsIsFalse', () => {
  service.doesUserExist('falsegithubusername123');
  expect(service.searchedUserExists).toBeFalsy();
});

但实际上您应该按照@auburg注释的那样做,并更改函数以返回布尔值,然后您可以进行如下测试:
it('testIfUserExistsIsFalse', () => {
  expect(service.doesUserExist('falsegithubusername123')).toBeFalsy();
});

关于angular - 如何测试 bool 值是否被更改?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53556133/

10-11 11:27