我试图让Proxyquire使用一个简单的方法替换,但我不知道我做错了什么。
我创建了lib.js
module.exports = {
thing: () => {
console.log("thing");
}
};和test.js
const lib = require("./lib");
module.exports = () => {
lib.thing();
};并尝试将依赖项存根并用另一个函数(即
const proxyquire = require("proxyquire");
const libStub = {};
const test = proxyquire("./test", {"lib": libStub});
test();
libStub.thing = () => {
console.log("replaced");
};
test();但test在两次调用时都会注销"thing“,而不是第二次调用时的"replaced”。任何帮助都是非常感谢的。
发布于 2017-09-10 09:30:59
在proxyquire中,使用您在require本身中使用的相同路径:
应该是这样的:
const proxyquire = require("proxyquire");
const libStub = {
thing: () => console.log('replaced')
};
const test = proxyquire("./test", {"./lib": libStub});
test();发布于 2017-10-23 07:42:09
解决这个问题的最好方法是使用:
两者都会抛出异常,以防它们无法使用提取原因和提取文件名来模拟它们试图使用的文件名。
https://stackoverflow.com/questions/45909341
复制相似问题