Как проверить наблюдаемый, который принадлежит другому сервису в угловых - PullRequest
0 голосов
/ 29 марта 2019
$loggedIn = new BehaviorSubject<boolean>(false);

constructor(private authHttp: AuthenticatedHttp, private httpResponseHandlerService: HttpResponseHandlerService) {
    this.$loggedIn.next(!this.jwtHelper.isTokenExpired(this.getToken()));
    if (this.$loggedIn.getValue()) {
      this.checkAuth().subscribe((response) => {
        if (!response) {
          this.logout();
        }
      });
    }
  }

Существует значение $loggedIn, которое можно наблюдать, и мне нужно создать значение заглушки, которое должно быть this.$loggedIn.next(true) в моем .spec.ts.

1 Ответ

0 голосов
/ 30 мая 2019

Вы можете шпионить за this.jwtHelper.isTokenExpired(), чтобы вернуть значение, которое вы хотите для своего теста.Единственное, что у вас может быть, - это то, что this.jwtHelper является частным членом вашего класса обслуживания, поэтому шпионить за ним будет не так просто.В этом случае тест может предлагать вам изменить дизайн вашего класса, создав другой приватный метод:

private isTokenExpired(): boolean {
    return this.jwtHelper.isTokenExpired(this.getToken());
}

Так что вы можете следить за этим в своем тесте:

spyOn(yourService, 'isTokenExpired').and.returnValue(false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...