Per dokumen :
_Sejak [email protected]_
Anda dapat mengatur ulang riwayat semua rintisan menggunakan sinon.resetHistory ()
Untuk Mereproduksi
const assert = require('chai').assert;
const sinon = require('sinon');
describe('resetHistory', function() {
var num = null;
beforeEach(function() {
num = sinon.createStubInstance(Number);
});
afterEach(() => {
// Restore the default sandbox here
sinon.restore();
});
describe('called on individual stub method', function() {
it('should clear "called" status on stub', function() {
num.toFixed();
assert.isTrue(num.toFixed.called);
num.toFixed.resetHistory();
assert.isFalse(num.toFixed.called);
});
});
describe('called on module', function() {
it('should clear "called" status on all stubs', function() {
num.toFixed();
assert.isTrue(num.toFixed.called);
sinon.resetHistory();
assert.isFalse(num.toFixed.called);
});
});
});
Hasil nyata
Tes kedua gagal:
"" memanggil modul: harus menghapus status \ "dipanggil \" pada semua rintisan: ❌. [assert.isFalse] Diharapkan benar menjadi salah ""
Hasil yang diharapkan
Semua tes lulus
Saya memperbarui masalah dengan konten file zip dan juga menambahkannya sebagai demo RunKit yang dapat dijalankan, menyatakan bahwa itu berfungsi.
Saya ingin membantu dalam memperbaiki bug
@rpgeeganage Harap lakukan! Berikut adalah panduan memulai kami
Saya menyadari komentar ini lebih merupakan permintaan fitur, tetapi alangkah baiknya jika objek "stub instance" memiliki metode resetHistory()
(dan resetBehavior()
dan reset()
) sendiri, tanpa perlu masuk ke seluruh kotak pasir.
@mcow Sudahkah Anda mencoba? 😄 Rintisan telah memiliki fitur tersebut sejak Sinon versi 2 . Penambahan sandbox jauh lebih baru.
@bayu_joo ,
Terima kasih banyak. Saya akan mengerjakan ini.
@ fatso83 Metode rintisan memiliki fitur itu. Objek "Stub instance" , hasil dari panggilan createStubInstance()
(yang terminologi jeleknya adalah sinon, jangan salahkan saya untuk miskomunikasi) tidak.
@bayu_joo ,
Saya telah melihat implementasi sinon.resetHistory
dan sinon.createStubInstance
.
Yang saya perhatikan adalah, sinon.createStubInstance
tidak menggunakan implementasi dari sandbox
tetapi sinon.resetHistory
menggunakan implementasi dari sandbox
. Di sinon.resetHistory
collection
selalu kosong. Saya akan menggali lebih dalam.
@mcow Aha, itu menjelaskan banyak hal. Saya tidak memperhatikan bit _instance_ :) Semoga pembahasan mendalam
@ fatso83 , haruskah masalah ini ditutup karena perubahannya digabungkan menjadi master?
TG untuk pengamat yang cerdik 😄