Sinon: `sinon.resetHistory ()` setzt den Verlauf nicht zurück

Erstellt am 8. Mai 2019  ·  11Kommentare  ·  Quelle: sinonjs/sinon

Gemäß den Dokumenten :

_Seit [email protected]_
Sie können den Verlauf aller Stubs mit sinon.resetHistory () zurücksetzen.

Fortpflanzen

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-Demo

Tatsächliche Ergebnisse

Zweiter Test schlägt fehl:
Modul "" aufgerufen: sollte den Status "aufgerufen" auf allen Stubs löschen: ❌. [assert.isFalse] Erwartet, dass true falsch ist ""

Erwartete Ergebnisse

Alle Tests bestehen

Bug Medium Help wanted

Alle 11 Kommentare

Ich habe das Problem mit dem Inhalt der Zip-Datei aktualisiert und es auch als ausführbare RunKit-Demo hinzugefügt, um zu bestätigen, dass es funktioniert.

Ich möchte bei der Fehlerbehebung helfen

@rpgeeganage Bitte tun! Hier ist unser Leitfaden für den Einstieg

Mir ist klar, dass dieser Kommentar eher eine Feature-Anfrage ist, aber es wäre schön, wenn das Objekt "Stub-Instanz" seine eigenen Methoden resetHistory() (und resetBehavior() und reset() ) hätte. ohne den gesamten Sandkasten treffen zu müssen.

@mcow Hast du es versucht? 😄 Stubs haben diese Funktionen seit Version 2 von Sinon . Die Sandbox-Ergänzungen sind viel jünger.

@ fatso83 ,
Vielen Dank. Ich werde daran arbeiten.

@ fatso83 Stub- Methoden haben diese Funktion. "Stub-Instanz" -Objekte , die das Ergebnis eines Aufrufs von createStubInstance() (welche miese Terminologie ist sinons, beschuldigen Sie mich nicht für die Fehlkommunikation), tun dies nicht.

@ fatso83 ,
Ich habe mir die Implementierung von sinon.resetHistory und sinon.createStubInstance .
Was mir auffällt ist, dass sinon.createStubInstance die Implementierung von sandbox aber sinon.resetHistory die Implementierung von sandbox . In sinon.resetHistory das collection immer leer. Ich werde tief graben.

@mcow Aha, das erklärt die Dinge. Ich habe das _instance_-Bit nicht bemerkt :) Hoffentlich kommt @rpgeeganage Deep Dive auf etwas Fruchtbares.

@ fatso83 , sollte dieses Problem geschlossen werden, da die Änderungen dafür in master zusammengeführt werden?

TG für scharfsinnige Beobachter 😄

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

jonnyreeves picture jonnyreeves  ·  33Kommentare

itmayziii picture itmayziii  ·  18Kommentare

fatso83 picture fatso83  ·  21Kommentare

fhd picture fhd  ·  23Kommentare

lavelle picture lavelle  ·  31Kommentare