Sinon: ستوب المتغيرات العالمية

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

الوحدات التي أريد اختبارها و / أو محاكاة استخدام بعض المتغيرات العالمية.

على سبيل المثال ، تقوم الكود المصدري للوحدة النمطية بإشارة إلى متغير session ، والذي لم يتم تعريفه في أي مكان ولكنه متاح في وقت التشغيل.

ضع في اعتبارك الوحدة globals.js :

let globals = {
    contextName: "DATA_PIPELINE",
    reportContext: "report",
    session: session
};

module.exports = globals;

لم يتم تعريف session في هذا الملف ولكنه متاح في وقت التشغيل. إنه متغير عالمي للبيئة (ليس تحت سيطرتي).

لقد لاحظت أنه باستخدام أجهزة ضبط الوقت المزيفة ، تمكنت من استبدال تنفيذ الوظائف العالمية مثل setTimeout. كيف يمكننا تطبيق هذا على أي وظيفة / كائن عالمي؟

ال 3 كومينتر

ربما sinon.replace(object, prop, replacement) هو ما تبحث عنه؟
https://sinonjs.org/releases/v7.2.4/sandbox/#sandboxreplaceobject -property-replace

نحاول الحفاظ على مرتبة قائمة مشكلات GitHub والتركيز على الأخطاء ومناقشات الميزات. تبدو هذه التذكرة وكأنها سؤال استخدام ؛ يرجى نشره على StackOverflow ووضع علامة عليه بـ sinon ، حتى يتمكن المجتمع الأكبر من المساعدة في الإجابة على أسئلتك.

في Node.js ، يمكنك فعل شيء مثل:

global.session = sinon.stub();
// Proceed to import the modules that use the session global and run the tests
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات