【发布时间】:2018-12-11 09:40:02
【问题描述】:
我有一个必须找到一个文件(.zip)并返回它的函数,我可以将它用作另一个函数的参数。此外,我在 karma/jasmine 中进行了测试,在那里我午餐我的搜索功能,当我这样做时,它会抛出一个错误 'fs.readFile is not a function'
测试代码:
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 来处理需求。
所以,searchfile 函数搜索一个文件,process 函数将使用这个文件。当我运行这个测试时,我遇到 fs.readFile 不是函数的错误。
但是,如果我将 searchfile 的代码放在 process 函数中并直接运行它就可以正常工作。
为什么它不起作用?
【问题讨论】:
-
我尝试使用 browserify-fs ,但没有帮助。
-
移到摩卡,工作。
标签: javascript node.js unit-testing karma-jasmine