EduFlow
اختبار تطبيقات JavaScript

الاختبار النهائي

اثنا عشر سؤالًا تغطي الدورة كلها. احصل على 70% أو أكثر لتنجح وتفتح شهادتك. يمكنك إعادته متى شئت.

أنهِ كل الدروس لتحصل على الشهادة، ويمكنك خوض الاختبار في أي وقت.

السؤال 1 من 12

نموذج يحلّل المبلغ ويرسله عبر عميل API. أيّ اختبار يعطي أكبر ثقة مقابل كل دقيقة من CI لذلك النموذج؟

السؤال 2 من 12

ما المشكلة الأساسية في هذا الاختبار؟

JavaScript
test('withTip', () => {
  expect(withTip(2000, 15).tipCents).toBe(300);
  expect(() => withTip(2000, -1)).toThrow();
  expect(withTip(2000, 0).totalCents).toBe(2000);
});
السؤال 3 من 12

يجب أن يكون عدد أعضاء المجموعة بين 2 و12. أيّ المدخلات تختبر القاعدة على أفضل وجه؟

السؤال 4 من 12

ينجح await expect(loadGroup('x', fetchMock)).rejects.toThrow() مع الكود الصحيح ومع نسخة تنهار بخطأ TypeError قبل أن تفحص رمز الحالة. كيف تجعل الاختبار ذا معنى؟

السؤال 5 من 12

تنجح الاختبارات واحدًا واحدًا لكنها تفشل في التشغيل الكامل. اختبار سابق ينفّذ vi.spyOn(Math, 'random').mockReturnValue(0). ما الإصلاح؟

السؤال 6 من 12

زرّ أيقونة فقط يُعرض هكذا: <button aria-label="Delete expense"><svg>…</svg></button>. أيّ query يجب أن يستخدمه اختبار Testing Library؟

السؤال 7 من 12

تظهر رسالة منبثقة “Saved” بعد الحفظ وتختفي بعد لحظة. كيف تؤكّد أنها تختفي؟

السؤال 8 من 12

يفشل هذا الفحص في Playwright بين حين وآخر في CI. ما الإصلاح؟

TypeScript
const rows = await page.getByRole('listitem').all();
expect(rows.length).toBe(3);
السؤال 9 من 12

تتشارك اختبارات الـ end-to-end مجموعة واحدة معبّأة مسبقًا، وأحدها يحذف منها مصروفًا. تفشل اختبارات أخرى حسب الترتيب. ما الإصلاح الأفضل؟

السؤال 10 من 12

أيّ أداة تخبرك أن لا اختبار سيلاحظ لو أصبح < في كودك <=؟

السؤال 11 من 12

ما زالت الـ pull requests تُدمج بينما مهمّة الـ end-to-end حمراء. ما الإصلاح الصحيح؟

السؤال 12 من 12

اختبار مكوّن يستخدم mock مكان formatMoney الصافية الخاصة بك بحيث تعيد دائمًا 'X'. ما التغيير الأفضل؟

12 سؤالًا بلا إجابة