我试图使用proxyquire来模拟一个快速行为,并且我在处理以下命令时遇到了一些困难:
expressProxy = () => {
return {
use: () => true,
post: () => true,
listen: () => true
}
}
Application = proxyquire('./../app', {
'express': expressProxy,
'passport': passportProxy,
'./app/business/service/StrategyFactory': StrategyFactoryProxy
})当我使用以下代码启动应用程序时:
Application.main()我总是有充分的明确的行为,因为它应该正常工作。
我拥有完整和完整的表达式对象,就好像它还没有被重新定义一样.
我有点迷路了,我不明白这是怎么回事。
有什么信息可以帮我理解吗?
发布于 2016-09-05 14:32:39
默认情况下,proxyquire将所有方法调用传递到原始依赖项。如果要对特定存根禁用它,可以使用“@noCallThru”关闭它:
var foo = proxyquire('./foo', {
path: {
extname: function (file) { ... }
, '@noCallThru': true
}
});如果要对所有存根关闭它,则为.noCallThru():
// all stubs resolved by proxyquireStrict will not call through by default
var proxyquireStrict = require('proxyquire').noCallThru();有关详细解释,请参阅https://github.com/thlorenz/proxyquire#preventing-call-thru-to-original-dependency
https://stackoverflow.com/questions/39331365
复制相似问题