Я использую инфраструктуру Jest для модульного тестирования и наткнулся на сценарий для насмешки над fs.readFile. Я использовал spyOn и высмеивал реализацию. Мой код ниже
test_file.ts
import * as fs from 'fs';
it('read File', () => {
const spy = jest.spyOn(fs, 'readFile')
.mockImplementation((_, callback) => callback(null, Buffer.from('Sample')));
// Calling the function
myFunction('./path');
expect(spy).toHaveBeenCalled();
});
Шпион не вызывается, когда я запускаю тестовый пример, и макет не работает. Оригинальная реализация всегда работает.
Моя функция, использующая fs.readFile
myFunction = (path) => {
// Reading the file
fs.readFile(path, async (error, file) => {
console.log(error) // No such file error thrown instead of null
/** Block of code with async work**/
});
};
Вкратце, что я пытаюсь сделать
Как правильно смоделировать fs.readFile?
РЕДАКТИРОВАТЬ
Когда я попытался утешить ошибку в моей исходной функции обратного вызова, он выдал ошибку «нет такого файла». Но я ожидаю, что ошибка будет нулевой, так как я пытаюсь заставить ее вернуть значение как нулевое.