Saat menggunakan metode kotak pasir apa pun di kotak pasir default, restore()
tidak mengembalikan tiruan atau mata-mata dengan benar. Kasus repro minimal pada 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
Tampaknya dalam panggilan untuk extend
di lib/sinon.js
, un-Sandbox stub/spy/etc.
ekspor dari apiMethods
berakhir membayangi metode sandbox, dan sebagainya restore()
tidak melakukan apa-apa. Dokumen dan sumber lib/sinon.js
tampaknya menyarankan bahwa ini adalah penggunaan yang dimaksudkan.
Saya hanya menguji stub
dan spy
, tetapi saya berharap metode bayangan lainnya juga tidak berfungsi sebagaimana dimaksud.
Saya menjalankan tes ini pada Node v8.9.4 dan Chrome 66.0.3359.117 melalui Karma/Chromedriver, meskipun masalah ini tampaknya tidak terkait dengan lingkungan.
Terima kasih atas laporan kesalahan terperinci Anda 👍
Ini telah diperbaiki di [email protected]
Terima kasih telah menangani ini dengan sangat cepat! Sangat dihargai :)
Dengan laporan kesalahan yang baik, sebagian besar bug mudah dihancurkan
Komentar yang paling membantu
Dengan laporan kesalahan yang baik, sebagian besar bug mudah dihancurkan