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.
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
Hilfreichster Kommentar
Mit guten Fehlermeldungen sind die meisten Fehler leicht zu beseitigen