首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Proxyquire不是存根

Proxyquire不是存根
EN

Stack Overflow用户
提问于 2017-08-28 05:03:47
回答 2查看 1.2K关注 0票数 2

我试图让Proxyquire使用一个简单的方法替换,但我不知道我做错了什么。

我创建了lib.js

代码语言:javascript
复制
module.exports = {
    thing: () => {
        console.log("thing");
    }
};

和test.js

代码语言:javascript
复制
const lib = require("./lib");

module.exports = () => {
    lib.thing();
};

并尝试将依赖项存根并用另一个函数(即

代码语言:javascript
复制
const proxyquire = require("proxyquire");
const libStub = {};
const test = proxyquire("./test", {"lib": libStub});

test();

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

test();

但test在两次调用时都会注销"thing“,而不是第二次调用时的"replaced”。任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

发布于 2017-09-10 09:30:59

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

应该是这样的:

代码语言:javascript
复制
const proxyquire = require("proxyquire");
const libStub = {
  thing: () => console.log('replaced')
};
const test = proxyquire("./test", {"./lib": libStub});
test();
票数 5
EN

Stack Overflow用户

发布于 2017-10-23 07:42:09

解决这个问题的最好方法是使用:

两者都会抛出异常,以防它们无法使用提取原因和提取文件名来模拟它们试图使用的文件名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45909341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档