我想要模拟测试中的函数 fs.readdir。
起初,我尝试使用 sinon,因为这是一个非常好的框架,但它并没有起作用。
我的第二次尝试是使用一个自我替换的函数来模拟这个函数。但它也不起作用。
起初,我尝试使用 sinon,因为这是一个非常好的框架,但它并没有起作用。
stub(fs, 'readdir').yieldsTo('callback', { error: null, files: ['index.md', 'page1.md', 'page2.md'] });
我的第二次尝试是使用一个自我替换的函数来模拟这个函数。但它也不起作用。
beforeEach(function () {
original = fs.readdir;
fs.readdir = function (path, callback) {
callback(null, ['/content/index.md', '/content/page1.md', '/content/page2.md']);
};
});
afterEach(function () {
fs.readdir = original;
});
有人能告诉我为什么两者都不起作用吗?谢谢!
更新 - 这个也不起作用:
sandbox.stub(fs, 'readdir', function (path, callback) {
callback(null, ['index.md', 'page1.md', 'page2.md']);
});
更新2:
我的最后一次尝试模拟readdir函数成功了,当我在测试中直接调用这个函数时。但是当我在另一个模块中调用模拟的函数时却不起作用。