Javascript 使用tape js模拟文档对象
我正在尝试单元测试一个模块(使用tapejs),该模块依赖于另一个使用document对象的模块,我得到“ReferenceError:document未定义” 我尝试proxyquire代理此依赖项,但它似乎没有任何作用Javascript 使用tape js模拟文档对象,javascript,unit-testing,Javascript,Unit Testing,我正在尝试单元测试一个模块(使用tapejs),该模块依赖于另一个使用document对象的模块,我得到“ReferenceError:document未定义” 我尝试proxyquire代理此依赖项,但它似乎没有任何作用 const store = proxyquire('../../../store/list-store', { '../config/paths': { createUrl: stub(), }, }); 有什么建议吗?使用proxyquire的noCallThru
const store = proxyquire('../../../store/list-store', {
'../config/paths': {
createUrl: stub(),
},
});
有什么建议吗?使用proxyquire的
noCallThru
方法帮助我实现了这一点
根据proxyquire的文件:
默认情况下,只要在存根上找不到在原始依赖项上定义的函数,proxyquire就会调用该函数
如果您喜欢更严格的行为,您可以在per上防止callThru
模块或上下文基础
我的解决方案:
const proxyquireStrict = proxyquire.noCallThru();
const Store = proxyquireStrict('../../../store/booking-add-store', {
'../config/paths': {
createUrl: () => stub().returns(''),
},
}).default;
const proxyquireStrict = proxyquire.noCallThru();
const Store = proxyquireStrict('../../../store/booking-add-store', {
'../config/paths': {
createUrl: () => stub().returns(''),
},
}).default;