اختبار تطبيقات JavaScript
اكتب اختبارات تلتقط الأخطاء الحقيقية، وتعمل بسرعة، ولا تُطلق إنذارًا كاذبًا.
- 4.8 (642 تقييمًا)
- 5,200 متعلّم
- متوسط
- 5 س 30 د إجمالًا
- حُدّثت في سبتمبر 2026
ما ستتعلّمه
- اختيار المزيج الصحيح من اختبارات unit وintegration وend-to-end
- كتابة اختبارات Vitest واضحة تغطي الحالات الحدّية والجداول
- اختبار الأخطاء والكود غير المتزامن والمتعاونين دون إفراط في الـ mocks
- اختبار الواجهة كما يستخدمها الناس، باستعلامات Testing Library
- كتابة اختبارات Playwright تنتظر بشكل صحيح ولا تتقلّب
- تقييم مجموعة الاختبارات بالـ coverage والـ mutation testing وإشارات CI
لمن هذه الدورة
معظم الفرق لا ينقصها عدد الاختبارات؛ ينقصها اختبارات تثق بها. تعلّمك هذه الدورة كتابة النوع الذي يستحق مكانه: unit tests تثبّت السلوك، واختبارات واجهة تتصرّف كما يتصرّف المستخدم، واختبارات end-to-end لا تتقلّب نتائجها. ستعمل بـ Vitest وTesting Library وPlaywright، وهي الأدوات التي تعتمد عليها معظم فرق JavaScript في 2026.
كل شيء مبنيّ حول Splitwise-lite، وهي وحدة برمجية لتقسيم الفواتير فيها أخطاء مالية حقيقية تنتظر أن تقع: التقريب، والسنتات المتبقّية، والحفظ غير المتزامن، وخوارزمية لتسوية الديون. في ساحة التجربة تكتب اختبارات على كود يعمل، ثم تثبت قيمتها بأن تلتقط نسخًا معطوبة عمدًا، وهي الفكرة نفسها التي يقوم عليها الـ mutation testing، والذي ستتعرّف إليه جيدًا في النهاية.
- لمن هذه الدورة
- مطوّرو JavaScript القادرون على بناء تطبيق صغير، ويريدون اختبارات تمنحهم ثقة حقيقية حين يغيّرونه.
- قبل أن تبدأ
- إلمام جيد بـ JavaScript الحديثة (الدوال، والمصفوفات، والـ promises، وasync/await) ومعرفة أساسية بالـ DOM أو React.
تدريب عملي
- اكتب JavaScript وشغّله في بيئة معزولة مع فحوص تلقائية.
- اكتب اختبارات عليها أن تكشف أخطاء حقيقية (mutation testing).
- تمارين موجَّهة: اكتشف الخطأ، وأكمل الأمر، ورتّب الخطوات.
محتوى الدورة
5 وحدات · 18 درسًا · 5 س 30 د إجمالًا
- ما الذي تمنحك إياه الاختبارات10 دقائق
- إعداد Vitest16 دقيقة
- تشريح الاختبار وقراءة رسائل الفشل18 دقيقة
- اختبار الوحدة5 أسئلة
- اختبر السلوك لا التفاصيل الداخلية18 دقيقة
- الحالات الحدّية والاختبارات المعتمدة على الجداول20 دقيقة
- اختبار الأخطاء والكود غير المتزامن18 دقيقة
- بدائل الاختبار، ومتى يضرّ الـ mocking20 دقيقة
- اختبار الوحدة5 أسئلة
- الاستعلام عن الـ DOM كما يراه المستخدم18 دقيقة
- محاكاة تفاعل المستخدم18 دقيقة
- اختبار الواجهة غير المتزامنة18 دقيقة
- اختبار مكوّنات React والشبكة20 دقيقة
- اختبار الوحدة5 أسئلة
- الـ Locators والـ Assertions الموجّهة للويب والانتظار التلقائي20 دقيقة
- الـ Fixtures وعزل الاختبارات20 دقيقة
- تتبّع الاختبارات المتقلّبة وإصلاحها20 دقيقة
- اختبار الوحدة5 أسئلة
- التطوير الموجّه بالاختبارات كأداة20 دقيقة
- الـ Coverage وحدودها18 دقيقة
- اختبار الطفرات (Mutation Testing)20 دقيقة
- الاختبار في CI واختيار ما لا تختبره18 دقيقة
- اختبار الوحدة5 أسئلة
مدرّبك

كينجي واتانابي
مهندس برمجيات رئيسي (Staff)، تجربة المطوّرين · Trellis
- تقييم المدرّب 4.7
- 19,500 متعلّم
- دورتان
مهمة كينجي في Trellis أن يجعل المهندسين الآخرين أسرع: سير العمل في Git، والـ CI pipeline، ومجموعة الاختبارات التي يجب أن تنتهي قبل الغداء. فكّ من عمليات rebase المتعثّرة أكثر مما يستطيع عدّه، وخفّض مرة زمن تشغيل الاختبارات من 40 دقيقة إلى ست.
ماذا يقول المتعلّمون
4.8
642 تقييم
Farah Siddiqui
قبل 6 أشهر
تمارين الـ mutants رائعة: يجب أن تنجح اختباراتك على الكود الحقيقي وتفشل على خطأ مزروع عمدًا. كشفت لي كم من اختباراتي القديمة لم يكن يتحقق من أي شيء.
Pedro Almeida
قبل 4 أشهر
فهمت أخيرًا أسلوب Testing Library في البحث عن العناصر حسب الدور (role)، وتوقفت اختبارات الـ components عندنا عن الانكسار كلما غيّر أحدهم اسم class في CSS.
Aisha Bello
الأسبوع الماضي
واضحة في اختبارات الوحدات (unit tests) واختبارات الـ components باستخدام Vitest. جزء الاختبارات الشاملة (end-to-end) بـ Playwright جيد لكنه قصير؛ كنت سأرحّب بدرسين إضافيين عنه.