تحقق من هذه الحزم الأفضل في فئتها للحصول على أفضل وظائف الاختبار التي تقدمها Node.

يعد الاختبار جزءًا مهمًا من أي عملية تطوير برمجيات لأنه يحدد المشكلات ونقاط الضعف الأمنية في التعليمات البرمجية الخاصة بك قبل شحنها.

يوفر النظام البيئي Node.js مجموعة متنوعة من حزم الاختبار لمساعدتك على ضمان موثوقية وجودة وأداء تطبيقاتك. هنا سوف تستكشف أفضل أربع حزم اختبار في نظام Node.js البيئي.

Jest هو إطار عمل للاختبار يوفر حل اختبار سهل الاستخدام وشامل لقواعد أكواد JavaScript. تم تطوير Jest بواسطة Meta ، ويقدم ميزات مثل تنفيذ الاختبار المتوازي ، وتغطية التعليمات البرمجية ، والمضمنة المطابقات للتأكيدات والسخرية واختبار اللقطة ، مما يجعلها اختبارًا قويًا ومتعدد الاستخدامات نطاق.

يمكنك تثبيت Jest عن طريق تشغيل الأمر أدناه:

تثبيت npm - مزحة حفظ ديف

هذا مثال يوضح اختبار مع Jest للدالة التي تتحقق مما إذا كان الرقم فرديًا:

يصف("أمر غريب", () => {
امتحان("إرجاع صحيح لإدخال رقم فردي", () => {
توقع (isOdd (3)).يكون(حقيقي);
});

امتحان("إرجاع خطأ لرقم زوجي", () => {
توقع (isOdd (2)).يكون(خطأ شنيع);
});

امتحان("يطرح خطأ لإدخال غير صحيح", () => {
يتوقع(() => {
أمر غريب(3.5);
}).لرمي("الإدخال ليس عددًا صحيحًا");
});

instagram viewer

امتحان("يطرح خطأ لإدخال غير رقمي", () => {
يتوقع(() => {
أمر غريب("3");
}).لرمي("الإدخال ليس رقمًا");
});
});

عند تشغيل مجموعة الاختبار أعلاه ، سينفذ Jest كل اختبار فردي ويقارن ناتج الوظيفة بالقيمة المتوقعة باستخدام يتوقع وظيفة و يكون و لرمي المباريات. إذا لم يكن الإخراج كما هو متوقع ، فإن Jest يبلغ عن اختبار فاشل ويقدم رسالة خطأ مفصلة.

لدى Jest أيضًا دعمًا مدمجًا لتطبيقات وظيفة الاستهزاء. بالإضافة إلى ذلك ، لديها مجتمع نشط كبير مع تحديثات وتحسينات منتظمة.

Mocha هو إطار عمل اختبار JavaScript يوفر حلاً مرنًا وقابل للتوسيع لكتابة الاختبارات لتطبيقات JavaScript. إنه يوفر بناء جملة بسيطًا وأضيق الحدود لتحديد الاختبارات.

وهو يدعم مكتبات تأكيد متعددة ، مثل مكتبات Node.js المدمجة يجزم الوحدة النمطية ، وتشاي ، و should.js ، من بين أمور أخرى. هذا الدعم لمكتبات التأكيد المتعددة يجعل Mocha الخيار المثالي إذا كنت تفضل المرونة في إعداد الاختبار الخاص بك.

يمكنك تثبيت Mocha عن طريق تشغيل الأمر أدناه:

npm تثبيت mocha

إليك مثال يوضح الاختبار باستخدام Mocha و Node.js يجزم الوحدة النمطية لدالة تُرجع مجموع رقمين:

مقدار ثابت تأكيد = يتطلب('يجزم');

يصف("addNumbers", وظيفة() {
هو - هي("أضف رقمين موجبين", وظيفة() {
مقدار ثابت النتيجة = addNumbers (3, 5);
assert.strictEqual (نتيجة ، 8);
});

هو - هي("أضف رقمًا موجبًا ورقمًا سالبًا", وظيفة() {
مقدار ثابت النتيجة = addNumbers (3, -5);
assert.strictEqual (نتيجة ، -2);
});
});

عند إجراء الاختبار أعلاه ، تجري Mocha كل اختبار فردي داخل هو - هي كتل. لكل اختبار ، ينفذ Mocha الكود في وظيفة الاختبار ، والتي تستدعي addNumbers تعمل بقيم إدخال محددة ثم تستخدم يجزم وحدة نمطية لمقارنة الناتج الفعلي للوظيفة مع الناتج المتوقع. إذا فشل الاختبار ، يقوم Mocha بالإبلاغ عن النتيجة على أنها فشل ويقدم معلومات حول قيم الإخراج المتوقعة والفعلية.

تتمثل إحدى الميزات الرئيسية لـ Mocha في مرونتها ، حيث تتيح لك اختيار مكتبات التأكيد الخاصة بك ، والمراسلين ، والتهيئة الأخرى وفقًا لاحتياجاتك. ومع ذلك ، يتطلب Mocha إعدادًا إضافيًا لميزات مثل السخرية واختبار اللقطة ، حيث لا يتضمنها خارج الصندوق. مقارنةً بـ Jest ، قد يتطلب Mocha مزيدًا من التكوين والإعداد لتحقيق ميزات مماثلة.

Ava هو إطار اختبار JavaScript يركز على الأداء والتزامن. إنه مصمم لإجراء الاختبارات بشكل متزامن ، مما يسمح بأوقات تنفيذ أسرع للاختبار. تأتي Ava أيضًا مع عداء اختبار ومكتبة تأكيد مضمنة ، مما يجعلها حلاً قائمًا بذاته لاختبار تطبيقات JavaScript.

يمكنك تثبيت Ava عن طريق تشغيل الأمر أدناه:

تثبيت npm - حفظ-ديف ava

إليك مثال يوضح الاختبار باستخدام Ava لدالة تُرجع مجموع رقمين:

يستورد امتحان من"افا";

امتحان("addNumbers يضيف رقمين موجبين"، ر => {
مقدار ثابت النتيجة = addNumbers (3, 5);
t.is (نتيجة ، 8);
});

امتحان("addNumbers يضيف رقمًا موجبًا وسالبًا"، ر => {
مقدار ثابت النتيجة = addNumbers (3, -5);
t.is (نتيجة ، -2);
});

عند إجراء هذه الاختبارات باستخدام Ava ، سيتم تنفيذ كل اختبار وإرسال تقرير بالنتائج إلى وحدة التحكم. إذا نجحت جميع الاختبارات ، ستبلغ Ava أن جميع الاختبارات قد اجتازت. إذا فشلت أي اختبارات ، ستقوم Ava بالإبلاغ عن الاختبارات التي فشلت وتوفر معلومات حول قيم المخرجات المتوقعة والفعلية.

تتضمن بعض مزايا Ava تركيزها على الأداء والتزامن ، مما يسمح بأوقات تنفيذ أسرع للاختبار ، خاصة في المشاريع التي تحتوي على عدد كبير من الاختبارات. ومع ذلك ، قد يكون لدى Ava منحنى تعليمي أكثر حدة للمطورين الجدد في بناء جملة JavaScript الحديث ، حيث تستخدم وحدات ES وغيرها من ميزات JavaScript الحديثة.

Jasmine هو إطار اختبار تطوير مدفوع بالسلوك (BDD) لتطبيقات JavaScript. يوفر تركيبًا نظيفًا ومعبّرًا لكتابة الاختبارات التي تشبه إلى حد بعيد اللغة الطبيعية ، مما يجعل من السهل فهم وكتابة الاختبارات للأشخاص التقنيين وغير التقنيين على حدٍ سواء. يأتي Jasmine أيضًا مع عداء اختبار مدمج ومكتبة تأكيد ، مما يجعله حلاً شاملاً لاختبار تطبيقات JavaScript.

يمكنك تثبيت ياسمين عن طريق تشغيل هذا الأمر:

تثبيت npm - حفظ-ديف الياسمين

بعد ذلك ، عليك تهيئة Jasmine في دليل العمل الخاص بك عن طريق تشغيل الأمر أدناه:

حلق الياسمين

يقوم الأمر أعلاه بإنشاء ملف يدعم مجلد في الخاص بك المواصفات (الاختبارات) المجلد. يضم هذا المجلد ملف الياسمين الملف الذي يحتوي على إعدادات التكوين لياسمين.

إليك مثال يوضح الاختبار باستخدام Jasmine لوظيفة تتحقق مما إذا كان الرقم زوجيًا:

يصف("isEven", وظيفة() {
هو - هي("عودة صحيحة لرقم زوجي", وظيفة() {
مقدار ثابت النتيجة = تساوي (4);
توقع (نتيجة) .toBe (حقيقي);
});

هو - هي("إرجاع خطأ لرقم فردي", وظيفة() {
مقدار ثابت النتيجة = تساوي (5);
توقع (نتيجة) .toBe (خطأ شنيع);
});
});

عند إجراء الاختبارات أعلاه باستخدام الياسمين ، ستقوم ياسمين بتنفيذ كل اختبار وإبلاغ النتائج إلى وحدة التحكم. إذا نجحت جميع الاختبارات ، ستبلغ ياسمين أن جميع الاختبارات قد اجتازت. إذا فشلت أي اختبارات ، فستقوم ياسمين بالإبلاغ عن الاختبارات التي فشلت وتوفر معلومات حول قيم المخرجات المتوقعة والفعلية.

تتضمن بعض مزايا Jasmine تركيبها BDD ، مما يجعل الاختبارات أكثر قابلية للقراءة ويساعد على تحسين التواصل بين أعضاء الفريق التقنيين وغير التقنيين. ومع ذلك ، قد يكون لدى Jasmine منحنى تعليمي أكثر حدة للمطورين الجدد على مفاهيم BDD. ومع ذلك ، تجدر الإشارة إلى أنه بالمقارنة مع أطر الاختبار الأخرى ، يتطلب Jasmine الكثير من التكوين للإعداد.

اختيار إطار الاختبار

يتطلب اختيار إطار عمل اختبار لمشروع Node.js دراسة متأنية لعدة عوامل ، بما في ذلك نهج الاختبار ، وسهولة الاستخدام ، ودعم المجتمع ، والتكامل مع الأدوات الأخرى ، و أداء. لكن في النهاية ، يعتمد الاختيار على مشروعك ، حيث أن بعض الحزم مناسبة بشكل أفضل لمشاريع معينة أكثر من غيرها.