Lorsque vous utilisez une méthode de bac à sable sur le bac à sable par défaut, restore()
ne restaure pas correctement les simulations ou les espions. Un cas de repro minimal sur 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
Il semble que dans l' appel à extend
dans lib/sinon.js
, les exportations non sandbox stub/spy/etc.
de apiMethods
finissent par masquer les méthodes sandbox, et donc restore()
ne fait rien. Les documents et la source de l' lib/sinon.js
semblent suggérer qu'il s'agit d'une utilisation prévue.
J'ai seulement testé stub
et spy
, mais je m'attendrais à ce que les autres méthodes ombrées ne fonctionnent pas non plus comme prévu.
J'ai exécuté ces tests sur Node v8.9.4 et Chrome 66.0.3359.117 via Karma/Chromedriver, bien que ce problème ne semble pas lié à l'environnement.
Merci pour votre rapport d'erreur détaillé
Cela a été corrigé dans [email protected]
Merci d'avoir répondu si rapidement ! Très appréciée :)
Avec de bons rapports d'erreur, la plupart des bogues sont faciles à éliminer
Commentaire le plus utile
Avec de bons rapports d'erreur, la plupart des bogues sont faciles à éliminer