代理不顽固

Ret*_*tta 2 javascript proxyquire

我试图让Proxyquire使用简单的方法替换,但我无法弄清楚我做错了什么.

我创建了lib.js.

module.exports = {
    thing: () => {
        console.log("thing");
    }
};
Run Code Online (Sandbox Code Playgroud)

和test.js

const lib = require("./lib");

module.exports = () => {
    lib.thing();
};
Run Code Online (Sandbox Code Playgroud)

并试图将依赖关系和替换东西与另一个函数,即

const proxyquire = require("proxyquire");
const libStub = {};
const test = proxyquire("./test", {"lib": libStub});

test();

libStub.thing = () => {
    console.log("replaced");
};

test();
Run Code Online (Sandbox Code Playgroud)

但是测试在两次调用时都会记录"事物"而不是"替换".任何帮助表示赞赏.

juj*_*ule 5

在proxyquire中,使用您在require本身中使用的相同路径:

所以应该是:

const proxyquire = require("proxyquire");
const libStub = {
  thing: () => console.log('replaced')
};
const test = proxyquire("./test", {"./lib": libStub});
test();
Run Code Online (Sandbox Code Playgroud)