Почему fs.readFile не является функцией при запуске тестов в Карме и Жасмине? - PullRequest
0 голосов
/ 03 июля 2018

У меня есть функция, которая должна найти файл (.zip) и вернуть его, чтобы я мог использовать его в качестве аргумента для другой функции. Кроме того, у меня есть тест в карма / жасмин, где я обедаю свою функцию поиска, и когда я делаю это, она выдает ошибку, что 'fs.readFile не является функцией'
тестовый код:

const fs = require('fs');
const JSZip = require("jszip");

const searchfile = () => {


fs.readFile('./data/2-11253540.zip', function (err, data) {
    if (err) throw err;
    JSZip.loadAsync(data).then(function (zip) {
        console.log('Process Zip: ', zip);
    });
});
};

describe('Process', () => {

const process = require('./process');
searchfile();
it('001', () => expect(process()).toEqual(null));

});

это выглядит не очень похоже на то, что я описал выше, но это была тестовая версия, чтобы проверить, работает она или нет. В моей конфигурации кармы у меня есть browserify для обработки require.

Итак, функция searchfile ищет файл, а функция process будет использовать этот файл. Когда я запускаю этот тест, у меня возникает ошибка, что fs.readFile не является функцией . Однако, если я добавлю код searchfile в функцию process и сразу запустю его, он будет работать нормально.

Почему это не работает?

1 Ответ

0 голосов
/ 03 июля 2018

Посмотрите на последние пару строк зеленого текста на скриншоте (почему вы публикуете ФОТОГРАФИИ текста?!).

Вы запускаете тесты в Chrome.

Модуль fs является функцией Node.js.

Модуль fs недоступен в Chrome (и было бы глупо, если бы веб-страница могла читать произвольные файлы из файловой системы посетителя).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...