Угловой тест для анонимной функции, назначенной свойству - PullRequest
0 голосов
/ 24 апреля 2019

Мне нужно проверить, вызывается ли функция компонента Angular (func1) анонимным свойством функции объекта, динамически создаваемого внутри другого углового метода.Немного сложно понять, но позвольте мне объяснить это.

У меня есть экспортированный класс, у которого есть свойство с анонимной функцией типа.Примерно так:

export class Detail {
  id: string;
  name: string;
  onSave: () => void;
}

В моем компоненте у меня есть метод, который создает экземпляр класса Detail и устанавливает анонимную функцию для свойства onSave, которая вызывает funFn.

myFunction(item: Item){
   const detail = new Detail();
   detail.onSave= (){
     this.runFn(item); 
   }
   this.someService.doSomethingWith(details);
}

runFn(item: Item){
   ... do something cool.
}

Я хочу проверить, вызывается ли runFn при выполнении onConfirm.Итак, в моем тестовом примере у меня есть:

it("Should calls runFn", function () {
      spyOn(Detail.prototype, 'onSave').and.callThrough();

      const mockItem = new Item();
      component.myFunction(mockItem);

      expect(component.runFn).toHaveBeenCalledWith(mockItem);
});

Код выше не работает, потому что onSave не метод, это свойство.Итак, как я могу смоделировать экземпляр, созданный внутри myFunction и проверить runFn, чтобы он был вызван внутри анонимной функции, назначенной onSave

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