Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 存根对象而不需要方法_Node.js_Typescript_Sinon_Stub_Request Promise - Fatal编程技术网

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