Предположим, у нас есть класс с некоторыми методами.Мы хотим узнать, вызван ли метод A или нет.Класс выглядит следующим образом.
class Parent {
constructor() {
this.conf = [{ id:'1', func: this.methodA.bind(this)}, { id:'2', func: this.methodB.bind(this)}]
}
methodA() {
console.log('methodA is called from methodC');
}
methodB() {
console.log('methodB is called from methodC');
}
methodC() {
this.conf.forEach((eachConf) => {
eachConf.func();
});
}
}
module.exports = new Parent();
В файле jest-теста вызывается methodC и требуется, чтобы methodA и methodB также вызывались.testSpy.js const Parent = require ('./ parent');
it('check methodA and methodB called', async () => {
const methodA = jest.spyOn(Parent, 'methodA');
const methodB = jest.spyOn(Parent, 'methodB');
Parent.methodC();
expect(methodA).toHaveBeenCalled();
expect(methodB).toHaveBeenCalled();
});
В нем говорится, что ожидаемая фиктивная функция была вызвана, но она не была вызвана.
Как обрабатыватьэтот тип вызовов функций с шуткой?