В настоящее время у меня проблема при шпионаже над унаследованными методами для вызовов в классах typescript, где метод toHaveBeenCalled() возвращает false, даже если вызывается метод, на который указывает шпион. Посмотрите на следующий сценарий...
У меня есть два класса, написанных в TypeScript
class Parent() {
buyFood() {
// buy food
}
}
class Husband extends Parent {
makeDinner() {
super.buyFood();
// make dinner;
}
}
В моих тестах для класса Husband меня беспокоит только проверка логики обеда, поскольку логика покупки суперкласса тестируется в собственном наборе тестов.
Следовательно, мои тесты выглядят как нечто вроде следующего вида.
let husband:Husband = new Husband();
it('Should make a good dinner', () => {
spyOn(husband, 'buyFood');
husband.makeDinner();
expect(husband.buyFood).toHaveBeenCalled();
}
Несмотря на то, что вызывается buyFood(), утверждение терпит неудачу с ошибкой, говорящей, что man.buyFood(), который является методом, унаследованным от класса Parent, никогда не вызывался.
Как мне решить эту проблему, не требуя подтверждения значения путем вызова метода buyFood()?