Sinon: لا تقوم `` sinon.resetHistory () '' بإعادة تعيين التاريخ

تم إنشاؤها على ٨ مايو ٢٠١٩  ·  11تعليقات  ·  مصدر: sinonjs/sinon

في المستندات :

_منذ [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);
    });
  });
});

عرض RunKit

النتائج الفعلية

فشل الاختبار الثاني:
تم استدعاء الوحدة النمطية "": يجب مسح حالة \ "تسمى \" على كافة الوحدات الجذرية: ❌. [assert.isFalse] توقع صواب أن يكون خطأ ""

نتائج متوقعة

جميع الاختبارات تمر

Bug Medium Help wanted

ال 11 كومينتر

لقد قمت بتحديث المشكلة بمحتوى ملف 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 للمراقبين المخضرمين 😄

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

NathanHazout picture NathanHazout  ·  3تعليقات

akdor1154 picture akdor1154  ·  4تعليقات

stephanwlee picture stephanwlee  ·  3تعليقات

brettz9 picture brettz9  ·  3تعليقات

sudhirbits picture sudhirbits  ·  4تعليقات