Sinon: Die Wiederherstellungsmethode der Standard-Sandbox stellt keine Stubs/Spione wieder her

Erstellt am 2. Mai 2018  ·  4Kommentare  ·  Quelle: sinonjs/sinon

Wenn Sie eine Sandbox-Methode in der Standard-Sandbox verwenden, stellt restore() Mocks oder Spione nicht richtig wieder her. Ein minimaler Repro-Fall auf 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

Es scheint, dass beim Aufruf von extend in lib/sinon.js die nicht-sandboxierten stub/spy/etc. Exporte von apiMethods die Sandbox-Methoden überschatten, und so restore() tut nichts. Die Sandbox-API-Dokumente und -Quelle in lib/sinon.js scheinen darauf hinzuweisen, dass dies beabsichtigt ist.

Ich habe nur stub und spy getestet, aber ich würde erwarten, dass auch alle anderen Shadowing-Methoden nicht wie beabsichtigt funktionieren.

Ich habe diese Tests auf Node v8.9.4 und Chrome 66.0.3359.117 über Karma/Chromedriver durchgeführt, obwohl dieses Problem anscheinend nicht mit der Umgebung zusammenhängt.

Hilfreichster Kommentar

Mit guten Fehlermeldungen sind die meisten Fehler leicht zu beseitigen

Alle 4 Kommentare

Vielen Dank für deinen ausführlichen Fehlerbericht 👍

Dies wurde in [email protected] behoben

Danke, dass du das so schnell ansprichst! Sehr geschätzt :)

Mit guten Fehlermeldungen sind die meisten Fehler leicht zu beseitigen

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen