عن المشروع
Sinon.JS هي مكتبة اختبار جافا سكريبت شهيرة توفر مجموعة شاملة من الأدوات لكتابة اختبارات الوحدة. تقدم المكتبة ثلاثة مفاهيم أساسية: الجواسيس (spies)، والبدائل (stubs)، والنماذج المحاكاة (mocks). تقوم الجواسيس بتغليف الدوال لتسجيل الاستدعاءات والوسائط، بينما تستبدل البدائل الدوال بسلوك مُتحكم فيه، وتجمع النماذج المحاكاة بين الاثنين للتحقق من السلوك المتوقع.
صُممت المكتبة لتكون مستقلة وغير مرتبطة بأي إطار اختبار، مما يعني إمكانية استخدامها مع أي إطار اختبار مثل Mocha أو Jasmine أو QUnit أو Jest. تهدف إلى عدم تلويث النطاق العام، وسهولة الاستخدام، والحد الأدنى من متطلبات التكامل، والاندماج السلس مع أي إطار اختبار.
التثبيت مباشر عبر npm (الأمر `npm install sinon`) أو من خلال إصدارات المتصفح المتاحة على الصفحة الرئيسية للمشروع. تدعم المكتبة أيضًا شبكات توزيع المحتوى (CDNs) المبنية على npm لسهولة التكامل.
تشمل الميزات الرئيسية:
- الجواسيس: تسجيل استدعاءات الدوال والوسائط وقيم الإرجاع
- البدائل: استبدال الدوال بسلوك مُتحكم فيه
- النماذج المحاكاة: دمج الجواسيس والبدائل للتحقق من السلوك المتوقع
- المؤقتات الوهمية: نماذج جاهزة للاستخدام لـ setTimeout وsetInterval وDate وغيرها
- عدم تلويث النطاق العام: واجهة برمجة نظيفة لا تلوث النطاق العام
يتبع المشروع رخصة BSD-3 ويتم صيانته بنشاط مع مساهمات من المجتمع. يستخدم اختبارات تعاقدية قائمة على القطع الأثرية لحماية واجهات البرمجة العامة أثناء الترحيل. يحتوي دليل `lib/` على مخرجات بناء مُولّدة ولا يتم إدراجه في المستودع؛ يمكن للمطورين إعادة توليده محليًا باستخدام الأمر `npm run build`.
تُستخدم Sinon.JS على نطاق واسع في نظام جافا سكريبت البيئي لكتابة اختبارات وحدة موثوقة وقابلة للصيانة. تجعلها واجهتها النظيفة وتصميمها المستقل عن الأطر خيارًا متعدد الاستخدامات للمطورين العاملين في بيئات اختبار مختلفة.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.