如何测试布尔值是否被更改?

时间:2018-11-30 10:55:26

标签: angular typescript

我的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();
});

2 个答案:

答案 0 :(得分:0)

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

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

但是实际上,您应该按照@auburg的注释进行操作,并更改该函数以返回布尔值,然后可以进行如下测试:

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

答案 1 :(得分:0)

如果this.searchedUserExists是公共变量,则直接检查。

expect(service.searchedUserExists).toBeFalsy();