如何从 fs.statSync 存根 isFile
How to stub isFile from fs.statSync
我正在为文件和路径操作编写单元测试,但我无法在 fs.statSync(filePath).isFile()
中存根 isFile
。
我收到以下错误:
ReferenceError: isFile is not defined
我的代码是:
const readFiles = fs.readdirSync(directoryPath);
readFiles.map(file => {
filePath = path.resolve(process.cwd(), `${directoryPath}/${file}`);
const isFile = fs.statSync(filePath).isFile();
if (!isFile) {
const filesList = fs.readdirSync(filePath).map(fileName => file + '/' + fileName);
files = [
...files,
...filesList,
];
} else {
files = fs.readdirSync(directoryPath);
}
});
这是我之前的测试代码,用于创建存根并分配给重新布线:
beforeEach(() => {
helpers.__set__({
'fs.statSync': sinon.stub().returns(true),
isFile: sinon.stub().returns(true),
'path.resolve': sinon.stub().returns('/a/b/c'),
});
});
请指教
如果 fs.statSync
的存根按预期工作,它会提供 true
。所以你不能在上面调用 isFile
。
所以我想你可以简单地在 statSync
提供的对象中模拟一个函数 isFile
,它将 return 为真:
'fs.statSync': sinon.stub().returns({ isFile: () => true})
我正在为文件和路径操作编写单元测试,但我无法在 fs.statSync(filePath).isFile()
中存根 isFile
。
我收到以下错误:
ReferenceError: isFile is not defined
我的代码是:
const readFiles = fs.readdirSync(directoryPath);
readFiles.map(file => {
filePath = path.resolve(process.cwd(), `${directoryPath}/${file}`);
const isFile = fs.statSync(filePath).isFile();
if (!isFile) {
const filesList = fs.readdirSync(filePath).map(fileName => file + '/' + fileName);
files = [
...files,
...filesList,
];
} else {
files = fs.readdirSync(directoryPath);
}
});
这是我之前的测试代码,用于创建存根并分配给重新布线:
beforeEach(() => {
helpers.__set__({
'fs.statSync': sinon.stub().returns(true),
isFile: sinon.stub().returns(true),
'path.resolve': sinon.stub().returns('/a/b/c'),
});
});
请指教
如果 fs.statSync
的存根按预期工作,它会提供 true
。所以你不能在上面调用 isFile
。
所以我想你可以简单地在 statSync
提供的对象中模拟一个函数 isFile
,它将 return 为真:
'fs.statSync': sinon.stub().returns({ isFile: () => true})