Sinon: `sinon.resetHistory()`は履歴をリセットしません

作成日 2019年05月08日  ·  11コメント  ·  ソース: sinonjs/sinon

ドキュメントによると

[email protected]_以降
sinon.resetHistory()を使用して、すべてのスタブの履歴をリセットできます。

再現するには

const assert = require('chai').assert;
const sinon = require('sinon');

describe('resetHistory', function() {
  var num = null;


  beforeEach(function() {
    num = sinon.createStubInstance(Number);
  });
  afterEach(() => {
    // Restore the default sandbox here
    sinon.restore();
  });

  describe('called on individual stub method', function() {
    it('should clear "called" status on stub', function() {
      num.toFixed();
      assert.isTrue(num.toFixed.called);
      num.toFixed.resetHistory();
      assert.isFalse(num.toFixed.called);
    });
  });

  describe('called on module', function() {
    it('should clear "called" status on all stubs', function() {
      num.toFixed();
      assert.isTrue(num.toFixed.called);
      sinon.resetHistory();
      assert.isFalse(num.toFixed.called);
    });
  });
});

RunKitデモ

実績

2番目のテストは失敗します:
「モジュールで呼び出されました:すべてのスタブで「呼び出された」ステータスをクリアする必要があります:❌。 [assert.isFalse] trueはfalseであると予想されます ""

期待される結果

すべてのテストに合格

Bug Medium Help wanted

全てのコメント11件

zipファイルの内容で問題を更新し、実行可能なRunKitデモとして追加して、機能することを確認しました。

バグ修正を手伝いたい

@rpgeeganageやってください! これが私たちのスタートガイドです

このコメントは機能要求のようなものだと思いますが、「スタブインスタンス」オブジェクトに独自のresetHistory() (およびresetBehavior()reset() )メソッドがあると便利です。サンドボックス全体をヒットする必要はありません。

@mcow試しましたか? 😄スタブには、Sinonのバージョン2以降にこれらの機能があります。 サンドボックスの追加ははるかに最近のものです。

@ fatso83
どうもありがとう。 これに取り組みます。

@ fatso83スタブメソッドにはその機能があります。 「スタブインスタンス」オブジェクトcreateStubInstance()呼び出しの結果(お粗末な用語はシノンのものです、誤解について私を責めないでください)はそうではありません。

@ fatso83
sinon.resetHistorysinon.createStubInstanceの実装を調べました。
私が気付いたのは、 sinon.createStubInstancesandboxの実装を使用していませんが、 sinon.resetHistorysandbox実装を使用しているということです。 sinon.resetHistoryでは、 collectionは常に空です。 深く掘り下げます。

@mcowああ、それは物事を説明します。 _instance_ビットに気づきませんでした:)うまくいけば、 @ rpgeeganageの詳細が実りあるものを

@ fatso83 、この問題の変更はマスターにマージされるため、この問題を解決する必要がありますか?

鋭敏な観察者のためのTG😄

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

関連する問題

stephanwlee picture stephanwlee  ·  3コメント

NathanHazout picture NathanHazout  ·  3コメント

akdor1154 picture akdor1154  ·  4コメント

optimatex picture optimatex  ·  4コメント

stevenmusumeche picture stevenmusumeche  ·  3コメント