Как я могу следить за функциями сервиса, который я тестирую? - PullRequest
0 голосов
/ 11 января 2019

У меня есть угловой сервис с двумя функциями, я хочу проверить, вызывает ли функция 1 с параметром 'x' функцию два.

С нижеследующим тестом:

  describe('myFunction1', function() {
    it('Should call myFunction2 if parameter is 'x'', function() {
      spyOn(myService, 'myFunction2');
      myService.myFunction1('x');
      expect(myService.myFunction2).toHaveBeenCalled();
    });
  });

Мой шпион не обнаружил никаких изменений для функции

function myFunction1(param) {
   if(param === 'x') {
      myFunction2();
  }
}

Но если я изменю функцию на нижеприведенную, шпион будет работать правильно, (но само приложение не работает, поэтому это не решение.

function myFunction1(param) {
   if(param === 'x') {
      this.myFunction2();
  }
}

1 Ответ

0 голосов
/ 11 января 2019

Если вы не видите полный сервисный файл или тестовый файл, похоже, что myFunction2 не является публичной функцией. Если ваш сервис не содержит ничего подобного:

return {
    myFunction1: myFunction1,
    myFunction2: myFunction2
};

... тогда вам придется искать другой способ шпионить за результатами param === 'x'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...