Sinon: デフォルトのサンドボックスの復元方法は、スタブ/スパイを復元しません

作成日 2018年05月02日  ·  4コメント  ·  ソース: sinonjs/sinon

デフォルトのサンドボックスでサンドボックスメソッドを使用すると、 restore()はモックまたはスパイを適切に復元しません。 Sinon v5.0.2での最小限の再現ケース:

const sinon = require('sinon');
const myApi = {
  someMethod() {
    console.log('test method!');
  }
};

sinon.stub(myApi, 'someMethod');
sinon.restore();
sinon.stub(myApi, 'someMethod');
// TypeError: Attempted to wrap someMethod which is already wrapped

でているようですへの呼び出しextendlib/sinon.js 、アンサンドボックスstub/spy/etc.からの輸出apiMethodsそのサンドボックスのメソッドをシャドウイング終わると、 restore()は何もしません。 lib/sinon.jsSandbox APIドキュメントとソースは、これが意図された使用法であることを示唆しているようです。

stubspyのみをテストしましたが、他のシャドウメソッドも意図したとおりに機能しないと思います。

これらのテストは、Karma / Chromedriverを介してNodev8.9.4とChrome66.0.3359.117で実行しましたが、この問題は環境とは関係がないようです。

最も参考になるコメント

優れたエラーレポートがあれば、ほとんどのバグは簡単に潰せます

全てのコメント4件

詳細なエラーレポートをありがとうございます👍

これは[email protected]修正されました

これにとても早く対処してくれてありがとう! とても有難い :)

優れたエラーレポートがあれば、ほとんどのバグは簡単に潰せます

このページは役に立ちましたか?
0 / 5 - 0 評価