0

私は次のようなものを持っています:

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)

rprequest-promise-nativeで、リクエストをラップします

4

2 に答える 2

1

上記のコメントの @Troopers のリンクから、これは不可能のようです。これを行うことは、モジュール ローディング システム全体を偽造しない限り、技術的に不可能です。

だから私はここでの提案に従いました: https://github.com/request/request/issues/2181と stub に mock-require を使用しましrpた。またrp.get()、とrp()_rp()rp.get()

于 2018-01-24T16:59:26.760 に答える