У меня есть функция, фактически метод в классе Typescript с именем HouseService, который выглядит следующим образом
myHouse() {
return this.bricks$
.pipe(
map(bricks => this.buildHouse(bricks)),
);
}
этот метод прослушивает Observable, this.brick$
, и как только некоторые кирпичи получают уведомление, строит дом с использованием метода `this.buildHouse (bricks: Array).
Затем я пишу тест, который проверяет, что метод this.buildHouse
вызывается только один раз. Тест выглядит так и отлично работает
it('"buildHouse()" method is called only once for one event of "bricks$"', () => {
spyOn(houseService, 'buildHouse').and.callThrough();
houseService.bricks$.next(newBricks);
expect(houseService.buildHouse).toHaveBeenCalledTimes(1);
});
Пока все отлично работает.
Теперь проблема. Я меняю реализацию метода myHouse, избавляясь от функции жирной стрелки и подставляя ее чистой ссылкой на метод, как показано ниже
myHouse() {
return this.bricks$
.pipe(
map(this.buildHouse),
);
}
Среда выполнения продолжает отлично работать, но тест больше не работает, поскольку сообщает, что buildHouse
был вызван 0 раз. Кто-нибудь может объяснить, почему?