Node.js 存根对象而不需要方法
我有点像:Node.js 存根对象而不需要方法,node.js,typescript,sinon,stub,request-promise,Node.js,Typescript,Sinon,Stub,Request Promise,我有点像: sandbox.stub(rp, 'get').resolves(successResponse) 它在遇到以下代码时返回我的自定义响应: return await rp.get(url, options) 但我怎么能做这样的事情: sandbox.stub(rp).resolves(successResponse) 哪个可以在点击此代码时返回自定义响应 return await rp(url, options) 当我尝试“存根”整个对象时,在运行测试时会出现
sandbox.stub(rp, 'get').resolves(successResponse)
它在遇到以下代码时返回我的自定义响应:
return await rp.get(url, options)
但我怎么能做这样的事情:
sandbox.stub(rp).resolves(successResponse)
哪个可以在点击此代码时返回自定义响应
return await rp(url, options)
当我尝试“存根”整个对象时,在运行测试时会出现以下错误:
TypeError: Attempted to wrap undefined property undefined as function
at wrapMethod (node_modules\sinon\lib\sinon\util\core\wrap-method.js:70:21)
at stub (node_modules\sinon\lib\sinon\stub.js:58:44)
at Object.stub (node_modules\sinon\lib\sinon\collection.js:93:33)
rp
is,它在上面的评论中从@Troopers'链接中包装了,似乎这是不可能的:
所以我在这里遵循了这个建议:并使用mock require来存根
rp
。我还修改了以前调用rp.get()。代码会更简单:rp.get=()=>Promise.resolve(stubresponse)
@Troopers对不起,这个问题与我的情况不同。这个问题遵循(类,方法)
模式,但是我对rp
的调用不适合这个模式。@Houseman:在第二种情况下,告诉我们如何定义rp
。