8 مكتبة اختبار التفاعل والمرافق لمشروع التطوير التالي الخاص بك
نشرت: 2021-06-22لا يضيف الاختبار أي ميزات إضافية لتطبيقك ، ولكنه يمنحك المزيد من الثقة لشحن تطبيقك إلى الإنتاج.
أعتقد أنك معتاد بالفعل على الاختبار ، وقد أتيت إلى هنا للتعرف على مكتبات الاختبار لتطبيق React الخاص بك. إذا كان الأمر كذلك ، فأنت في المكان الصحيح. قبل أن ننظر في أنواع مختلفة من المكتبات ، دعنا نرى بسرعة كيف يؤثر الاختبار على جودة التطبيق ووقت التطوير.
تأثير الاختبار
قد يشعر البعض منكم أن كتابة الاختبارات للتطبيق عملية تستغرق وقتًا طويلاً. دعنا نتخطى هذا الآن. لا ، لا تضيع الوقت في كتابة الاختبارات لتطبيقك.
لنفترض أنك قمت بتطوير تطبيق لا يحتوي على أي اختبارات. لقد ظهرت أكثر من 100 وظيفة. بعد فترة طويلة من الوقت ، قل 3 أشهر. يريد عملاؤك منك إضافة 5 ميزات جديدة وتعديل ميزتين من بين 100 ميزة قمت بتطويرها من قبل.
ليس لديك أي مشكلة في ذلك وأكملت كل منهم وشحن الكود الخاص بك إلى الإنتاج (بدون اختبارات كالمعتاد). بعد بضعة أيام ، جاء عميلك إليك مرة أخرى ليخبره أن الميزات القديمة تتعطل. وأنت لم تفهم لماذا؟ مرة أخرى ، قضيت وقتًا طويلاً في حل المشكلات. بعد الانتهاء من حل المشكلات ، بدأت تفقد الثقة.
كيف تكسب تلك الثقة؟

ووفر ذلك الوقت الإضافي الذي قضيته في حل المشكلات. شيء واحد سيفعل كل الأشياء بشكل صحيح ، أي الاختبار.
لنفترض أن لديك اختبارات مكتوبة لتطبيقك. ستجري الاختبارات مرة أخرى عندما تقوم بتطوير ميزات جديدة أو تعديل الميزات القديمة. في هذه الحالة ، ستتعرف على المشكلات قبل الانتقال إلى المنتج نفسه. إنه يوفر الكثير من الوقت ويجعلك واثقًا من جودة التطبيق الخاص بك.
حان الوقت الآن للنظر في مكتبات اختبار مختلفة لمشروع React التالي.
مكتبة الاختبار
مكتبة الاختبار هي مجموعة من الحزم التي تساعدك على اختبار مكونات واجهة المستخدم. ينصب تركيزنا على React Testing Libray.
مكتبة اختبار التفاعل عبارة عن مكتبة خفيفة الوزن بها مجموعة كاملة من الأدوات المساعدة لاختبار React DOM. يسمح لنا باختبار مكونات التفاعل دون إعطاء تفاصيل تنفيذ المكتبة. يساعدنا على اكتساب المزيد من الثقة من خلال تسهيل الاختبار.
في معظم الأحيان ، يعمل جنبًا إلى جنب مع مكتبة اختبار Jest . إنه يوفر طرقًا وأدوات مساعدة بسيطة للاختبار ويوجهنا لاتباع أفضل الممارسات في الاختبار.
بعض ميزات مكتبة اختبار التفاعل هي:
- لا يهتم باختبار الحالة الداخلية للمكونات.
- اختبار نتيجة تصيير المكونات.
- يختبر عقد DOM بدلاً من مثيلات الفئات.
- يوفر طريقة مخصصة للوصول إلى عناصر DOM في المكتبة.
- تأكد من أن واجهة المستخدم تعمل بشكل صحيح.
- لديها دعم كبير من المجتمع.
دعابة
Jest هو إطار اختبار لاختبار JavaScript و TypeScript code. ويتكامل مع مكتبات الواجهة الأمامية جيدًا. تم تطويره وصيانته بواسطة Facebook. يوصي فريق React به لاختبار تطبيق React.

يحتوي على أكبر عدد من التنزيلات من جميع مكتبات الاختبار الأخرى الموجودة حوله. ستكون Jest ، جنبًا إلى جنب مع مكتبة اختبار التفاعل ، أكثر قوة لاختبار React. ويستخدم معظم المطورين هذه المجموعة للاختبار.
بعض ميزات Jest هي:
- الاختبارات معزولة عن بعضها البعض.
- يوفر تغطية التعليمات البرمجية.
- إنه سريع.
- يوفر طريقة للسخرية من الوظائف.
- يقدم أنواعًا مختلفة من الاستثناءات للاختبار.
إنزيم
الإنزيم هو أداة اختبار لاختبار مكونات React. يسمح لنا باجتياز مخرجات مكون React ومعالجتها بسهولة. تم إنشاؤه بواسطة Airbnb.
يجب استخدامه مع متسابقي الاختبار الآخرين مثل jest ، mocha ، jasmine ، إلخ .. ، لاختبار مكونات React. يوفر طرقًا إضافية وسهلة لعرض مكونات React واختبارها. وهي تعمل فقط مع مكتبة React.
موكا
Mocha هو إطار اختبار يجعل الاختبار بسيطًا. يتم تشغيله على NodeJS. يعمل عداء الاختبار الخاص به جنبًا إلى جنب مع مكتبات الاختبار الأخرى لاختبار React.
بعض ميزات الموكا هي:
- يقدم تقارير تغطية الاختبار.
- شكلي بالكامل مع ملف التكوين.
- دعم مهلة اختبار عدم التزامن.
- المهلات على أساس الاختبارات.
- حتى أنه يسلط الضوء على الاختبارات البطيئة بالنسبة لك.
لدى Mocha الكثير من الميزات الأخرى في انتظارك على صفحتها الرئيسية.

كارما
Karma هي بيئة اختبار لتطبيقك. يسمح لنا بإجراء الاختبارات على متصفحات وأجهزة حقيقية (الهواتف المحمولة والأجهزة اللوحية وأجهزة الكمبيوتر المكتبية). يهدف إلى توفير بيئات مختلفة للمطورين للاختبار.
بعض ميزات الكارما هي:
- اختبر الكود الخاص بك على أجهزة حقيقية.
- يسمح لنا باختبار الكود الخاص بنا على بيئة مقطوعة الرأس مثل PhantomJS.
- يمكنك دمج Karma مع أدوات CI / CD مثل Jenkins و Travis و Semaphore .
- يمكنك دمجها بسهولة مع أطر اختبار أخرى مثل Mocha و Jasmine وما إلى ذلك.
- تصحيح الأخطاء أصبح سهلاً مع IDE.
ياسمين
Jasmine هو إطار اختبار للتنمية يحركها السلوك (BDD) لجافا سكريبت. لا يتطلب DOM لاختبار الكود. تم تصميم الياسمين لاختبار كود NodeJS. يمكننا اختبار React مع Jasmine ومكتبات الاختبار الأخرى.
من مميزات الياسمين:
- يحتوي على بناء جملة نظيف وسهل لكتابة الاختبارات.
- يمكننا كتابة اختبارات لكل من الواجهة الأمامية والخلفية.
- جوهر الياسمين ليس له أي تبعيات ، مما يجعله سريعًا.
تشاي
Chaiis مكتبة التأكيد. يمكن إقرانها بأي مكتبة اختبار JavaScript أخرى. يوفر Chai وظائف مثل should ، والتأكيد ، وباستثناء التأكيد.
شجرة السرو
Cypress هو إطار عمل اختبار JavaScript من طرف إلى طرف. يسمح لنا بإعداد الاختبارات وكتابتها وتشغيلها وتصحيحها في المتصفح. يحتوي على لوحة معلومات تمنحك تقريرًا مفصلاً عن حالة كل اختبار تكتبه.
يجري Cypress الاختبار في بيئة متصفح فعلية تتيح لك الوصول إلى أدوات التطوير أيضًا. يتم استخدامه لاختبار التدفق الشامل لميزة في التطبيق.
بعض ميزات السرو هي:
- يمكنك رؤية لقطة من كل خطوة. يأخذ لقطات من كل خطوة أثناء إجراء الاختبارات.
- جعلت من تصحيح الأخطاء أمرًا سهلاً باستخدام DevTools.
- يعيد Cypress تشغيل الاختبارات تلقائيًا عند إجراء تغييرات على الاختبارات مشابهة لميزة React في الوقت الفعلي.
- ستنتظر الاختبارات تلقائيًا الإخراج دون استخدام تعليمة الانتظار.
استنتاج
اختبارات الكتابة مفيدة لك وللتطبيق. يجعل الأمور سهلة في الأوقات الصعبة. لا تتعذر في ذلك. ترتيب مكتبات الاختبار في المقالات ليس له أي أهمية. انها فقط للعد. لا توجد مكتبة أقل من غيرها. كل مكتبة لها مزاياها وعيوبها.
يمكننا في الغالب اختبار الميزات الكاملة لتطبيق React باستخدام مكتبة اختبار React و Jest . ويوصي به معظم أعضاء مجتمع React. ليس من الضروري بالنسبة لك استخدام هذين. إذا كنت مبتدئًا ، فيمكنك تجربته. إذا كنت تبحث عن شيء أكثر تحديدًا لتطبيق React الخاص بك ، فانتقل إلى كل مكتبة.
نتمنى لك تجربة سعيدة