Я новичок в модульном тестировании Jest, и мне было интересно, можно ли использовать Jest для тестирования модулей файловой системы Node.js.
В настоящее время у меня есть текстовый файл, который содержит короткое стихотворение, и консоль функции viewText записывает это стихотворение на моем терминале.
Используя Jest, я хочу написать тест, который проверяет,viewText
функция действительно работает.
const viewText = () => {
fs.readFile('poem.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
};
С помощью Jest я попытался:
jest.spyOn(global.console, 'log');
const mockPoem = 'Some say the world will end in fire, Some say in ice. From what I’ve tasted of desire I hold with those who favor fire ... And would suffice.';
describe('viewText', () => {
const mockReadFile = jest.fn();
mockReadFile.mockReturnValue(mockPoem);
it('prints poem to console', () => {
viewText();
expect(global.console.log).toHaveBeenCalledWith(mockPoem);
});
});
С помощью теста все, что я хочу сделать, проверить, прошла ли моя функция viewText
тест - уметь просматривать mockPoem
. Я действительно смущен тем, как мне следует подходить к написанию модульных тестов для функций с использованием модуля файловой системы.