لو انت جديد في #unit_testing شوية المفاهيم دي هتنفعك جدا
عملية الـ #testing متقسمة ل 4 أجزاء
كل جزء فيهم هتلاقي مكتبة معينة متخصصة فيه
- Test runner
ودة مسؤل عن تشغيل الاختبارات وبيقرر انهو تيست هيشتغل وانهو لأ, ومين هيشتغل قبل مين
- Assertion
ودي بنستخدمها أثناء الاختبار عشان نقرر اذا كان الاختبار ناجح ولا لأ
وبصفة اساسية عشان نتأكد ان النتايج المتوقعة مطابقة للنتايج المتوقعة
- test doubles
ودي بتوفرلنا طرق لعمل mocking و spies
أهم المكتبات المستخدمة في التيستنج
- #Jasmine
ودي من اهم مميزاتها انها مكتبة شاملة, يعني فيها runner و assertionو doubles
جاهزة للاستخدام المباشر من غير اي اعدادات كتير
- #jest
من انتاج #فيسبوك, وبرضو مكتبة شاملة وجاهزة للاستخدام من غير اي اعدادات
ميزتها انها سريعة جدا وبتنفذ الاختبارات ع التوازي فبتنجز الموضوع في وقت اقل من اي مكتبة تانية
- #mocha
عارف مشروب الموكا؟
المكتبة دي بتديلك الحد الادني لاجراء الاختبارات, مش مكتبة شاملة زي jasmine و jest
ودة معناه انها محتاجة test runner يشغل الاختبارات
بما انها موكا فغالبا بنستخدم معاها شاي .. او مكتبة Chai
تحسهم كدة بيعلوا الألش علي بعض
وبرضو هنحتاج مكتبة نعمل بيها doubles اللي هي mocks و spies لو تفتكر
ممكن مثلا نستخدم حاجة زي Sinson
واكيد طبعا هنحتاج مكتبة للـ assertion عشان نعمل الاختبار نفسه
ممكن نستخدم حاجة زي Better-assert, shouldjs, unexpected
- #Nodejs
ودي حاجة واقعة من ناس كتير, Nodejs نفسها فيها assert library ممتازة جدا
لغاية وقت قريب كانت للاستخدام الداخلي بس, لكن فتحوها وخلوها متاحة للجميع
في الاصدارات الجديدة من Node عملوا test runners من غير اي مكتبة خارجية
- Karma
كارما مختلفة عن اي مكتبة تانية لانها بتشغل الاختبارات في browsers حقيقية
وأخيرا لو تحب ارشحلك افضل مكتبة تستخدمها في ال testing
الاختيار هيكون بناء علي تجاربي الشخصية وخبراتي الشخصية
بصفة عامة اول حاجة بفكر فيها هي Jest
لانها سريعة جدا وشاملة وفي نفس الوقت جاهزة للاستخدام فورا ومش محتاجة تستخدم معاها مكتبات تانية
في حالات معينة بحتاج اشغل الاختبارات في browsers حقيقية فبلجأ في الحالة دي ل Karma
لو بتتعلم تيتنج سيب كومنت عشان ابعتلك مواعيد الكورس المجاني
عملية الـ #testing متقسمة ل 4 أجزاء
كل جزء فيهم هتلاقي مكتبة معينة متخصصة فيه
- Test runner
ودة مسؤل عن تشغيل الاختبارات وبيقرر انهو تيست هيشتغل وانهو لأ, ومين هيشتغل قبل مين
- Assertion
ودي بنستخدمها أثناء الاختبار عشان نقرر اذا كان الاختبار ناجح ولا لأ
وبصفة اساسية عشان نتأكد ان النتايج المتوقعة مطابقة للنتايج المتوقعة
- test doubles
ودي بتوفرلنا طرق لعمل mocking و spies
أهم المكتبات المستخدمة في التيستنج
- #Jasmine
ودي من اهم مميزاتها انها مكتبة شاملة, يعني فيها runner و assertionو doubles
جاهزة للاستخدام المباشر من غير اي اعدادات كتير
- #jest
من انتاج #فيسبوك, وبرضو مكتبة شاملة وجاهزة للاستخدام من غير اي اعدادات
ميزتها انها سريعة جدا وبتنفذ الاختبارات ع التوازي فبتنجز الموضوع في وقت اقل من اي مكتبة تانية
- #mocha
عارف مشروب الموكا؟
المكتبة دي بتديلك الحد الادني لاجراء الاختبارات, مش مكتبة شاملة زي jasmine و jest
ودة معناه انها محتاجة test runner يشغل الاختبارات
بما انها موكا فغالبا بنستخدم معاها شاي .. او مكتبة Chai
تحسهم كدة بيعلوا الألش علي بعض
وبرضو هنحتاج مكتبة نعمل بيها doubles اللي هي mocks و spies لو تفتكر
ممكن مثلا نستخدم حاجة زي Sinson
واكيد طبعا هنحتاج مكتبة للـ assertion عشان نعمل الاختبار نفسه
ممكن نستخدم حاجة زي Better-assert, shouldjs, unexpected
- #Nodejs
ودي حاجة واقعة من ناس كتير, Nodejs نفسها فيها assert library ممتازة جدا
لغاية وقت قريب كانت للاستخدام الداخلي بس, لكن فتحوها وخلوها متاحة للجميع
في الاصدارات الجديدة من Node عملوا test runners من غير اي مكتبة خارجية
- Karma
كارما مختلفة عن اي مكتبة تانية لانها بتشغل الاختبارات في browsers حقيقية
وأخيرا لو تحب ارشحلك افضل مكتبة تستخدمها في ال testing
الاختيار هيكون بناء علي تجاربي الشخصية وخبراتي الشخصية
بصفة عامة اول حاجة بفكر فيها هي Jest
لانها سريعة جدا وشاملة وفي نفس الوقت جاهزة للاستخدام فورا ومش محتاجة تستخدم معاها مكتبات تانية
في حالات معينة بحتاج اشغل الاختبارات في browsers حقيقية فبلجأ في الحالة دي ل Karma
لو بتتعلم تيتنج سيب كومنت عشان ابعتلك مواعيد الكورس المجاني
❤5👍3