Я пытаюсь проверить вызовы функций внутри класса, чтобы убедиться, что они вызваны, но я не могу понять, как это сделать с помощью Jest.
Автоматические насмешки не работаюти ни один из них не вызывает jest.mock с параметром фабрики модулей.
Это рассматриваемый класс, и я хочу проверить, что вызов play () вызывает playSoundFile ().
class SoundPlayer {
constructor() {
this.foo = 'bar';
}
playSoundFile(fileName) {
console.log('Playing sound file ' + fileName);
}
play() {
this.playSoundFile('song.mp3');
}
}
module.exports = SoundPlayer;
Это тестовый файл:
const SoundPlayer = require('../sound-player');
jest.mock('../sound-player');
it('test', () => {
const soundPlayerConsumer = new SoundPlayer();
const coolSoundFileName = 'song.mp3';
soundPlayerConsumer.play();
const mockPlaySoundFile = SoundPlayer.mock.instances[0].playSoundFile;
expect(mockPlaySoundFile.mock.calls[0][0]).toEqual(coolSoundFileName);
});
mockPlaySoundFile.mock.calls пуст и из-за этого выдает ошибку.