Sinon: Metode pemulihan kotak pasir default tidak mengembalikan rintisan/mata-mata

Dibuat pada 2 Mei 2018  ·  4Komentar  ·  Sumber: sinonjs/sinon

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.

Komentar yang paling membantu

Dengan laporan kesalahan yang baik, sebagian besar bug mudah dihancurkan

Semua 4 komentar

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

Apakah halaman ini membantu?
0 / 5 - 0 peringkat