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);
});
});
});
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
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 😄