في المستندات :
_منذ [email protected]_
يمكنك إعادة تعيين محفوظات كل بذرة باستخدام sinon.resetHistory ()
لإعادة إنتاج
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);
});
});
});
النتائج الفعلية
فشل الاختبار الثاني:
تم استدعاء الوحدة النمطية "": يجب مسح حالة \ "تسمى \" على كافة الوحدات الجذرية: ❌. [assert.isFalse] توقع صواب أن يكون خطأ ""
نتائج متوقعة
جميع الاختبارات تمر
لقد قمت بتحديث المشكلة بمحتوى ملف zip وأضفته أيضًا كعرض RunKit التجريبي القابل للتشغيل ، مؤكدة أنه يعمل.
أود المساعدة في إصلاح الخلل
تضمين التغريدة هنا هو دليل البدء لدينا
أدرك أن هذا التعليق هو أكثر من طلب ميزة ، ولكن سيكون من الجيد أن يكون لكائن "مثيل كعب الروتين" أساليب resetHistory()
(و resetBehavior()
و reset()
) ، دون الحاجة إلى الوصول إلى الصندوق الرمل بأكمله.
mcow هل حاولت؟ 😄 تتمتع Stubs بهذه الميزات منذ الإصدار 2 من Sinon . إضافات sandbox أحدث بكثير.
@ fatso83 ،
شكرا جزيلا. سأعمل على هذا.
طرق @ fatso83 Stub لها هذه الميزة. كائنات "مثيل Stub" ، نتيجة مكالمة createStubInstance()
(وهي المصطلحات الرديئة هي sinon ، لا تلومني على سوء التواصل) لا تفعل ذلك.
@ fatso83 ،
لقد بحثت في تنفيذ sinon.resetHistory
و sinon.createStubInstance
.
ما لاحظته هو أن sinon.createStubInstance
لا يستخدم التنفيذ من sandbox
لكن sinon.resetHistory
يستخدم التنفيذ من sandbox
. في sinon.resetHistory
يكون collection
فارغًا دائمًا. سأحفر بعمق.
mcow Aha ، هذا يشرح الأشياء. لم ألاحظ بت _instance_ :) أتمنى أن يأتي الغوص العميق rpgeeganage بشيء مثمر.
@ fatso83 ، هل يجب إغلاق هذه المشكلة حيث تم دمج التغييرات الخاصة بها في مشكلة رئيسية؟
TG للمراقبين المخضرمين 😄