マイコード:上記のコードでmochaテストのsinon.test()で `this`は何ですか?
it('should', sinon.test(function() {
console.log(this); // what `this` refer here?
...
}));
、何this
がsinon.test()
機能で参照してください?
は、私はそれをログに記録しようとしましたが、エラーました:
TypeError: Converting circular structure to JSON
Sinonバージョン:1.17.6
任意のコメントを歓迎します。ありがとう。
UPDATE
以下の答えを読んだ後、私はまだ混乱しています。なぜthis.myOnject.log
が一度だけスタブされた場合、次の2つのコードが機能するのですか?
it('should', sinon.test(function() {
const stubLog = this.stub(this.myObject.log, 'warn');
// ...
this.myObject.process();
// expect codes...
}));
it('should', sinon.test(function() {
const stubLog = sinon.stub(this.myObject.log, 'warn');
// ...
this.myObject.process();
// expect codes...
}));
UPDATE
downvoted場合、あなたはdownvotedなぜ私が知っているようにいくつかのコメントを残してください。私は投稿した質問で非常に混乱しています。しかし、私はなぜそんなに多くの人々が捨て去ったのか、何か有益なコメントを残さなかったのはもっと混乱しています。
ありがとうございました。 'sinon.stub()'と 'this.stub()'の違いは何ですか? – BAE
違いは、 'sinon.test()'の 'this.stub()'はサンドボックスを使用していることです。 'sinon.stub()'を呼び出すだけでsanboxのメリットは得られませんし、必要なクリーンアップを自分で実行する必要があります。 – Louis