Theme
Primary Color

تكليفات الدروس من [ 16 ] إلى [ 20 ]

[ 4 ] تكليفات على [ Coverage & Mock Functions ]

التكليف 01

مطابقة القيم والأنواع وعناصر ال Array

  • لديك البيانات التالية وممنوع تعديلها
  • تأكد أن username نص باستخدام expect.any
  • تأكد أن age رقم باستخدام expect.any
  • تأكد أن isActive قيمة Boolean باستخدام expect.any
  • باستخدام expect.anything تأكد أن score ليست null أو undefined
  • تأكد أن skills تحتوي على "CSS" و"HTML" باستخدام expect.arrayContaining وبترتيب مختلف عن ترتيبهم في البيانات
  • تأكد أن phone لا تطابق expect.anything
profile.js
const profile = {
  username: "Osama",
  age: 39,
  isActive: true,
  score: 0,
  skills: ["HTML", "CSS", "JavaScript", "Jest"],
  phone: null,
};

module.exports = profile;

التكليف 02

تغطية جميع حالات الدالة

  • لديك الدالة التالية وممنوع تعديلها
  • قم بكتابة اختبارات تغطي عدم تمرير السعر والسعر الأقل من 100 والسعر الأكبر من أو يساوي 100
  • اختبر القيمة 100 نفسها للتأكد من الحد الفاصل
  • فعل جمع ال Coverage داخل package.json
  • اجعل التقرير بصيغة HTML
  • شغل الاختبارات وافتح التقرير وتأكد من تغطية الدالة بالكامل
shipping.js
function getShipping(price = 0) {
  if (price >= 100) {
    return 0;
  }

  return 20;
}

module.exports = getShipping;

التكليف 03

إنشاء Mock Function وفحص استدعاءاتها

  • قم بإنشاء Mock Function باستخدام jest.fn بإسم sendMessage
  • تستقبل إسم الشخص ونص الرسالة
  • ترجع نصا بالشكل "To Osama: Welcome"
  • استدع الدالة 3 مرات بالبيانات الموضحة
  • تأكد من نتيجة كل استدعاء
  • تأكد أن الدالة تم استدعاؤها
  • تأكد أن عدد الاستدعاءات 3
  • تأكد أنها تم إستدعائها بالقيم "Ahmed" و "Hello"
  • تأكد أن آخر استدعاء كان بالقيم "Sayed" و "Good Morning"
// Calls And Expected Results

// sendMessage("Osama", "Welcome")
// "To Osama: Welcome"

// sendMessage("Ahmed", "Hello")
// "To Ahmed: Hello"

// sendMessage("Sayed", "Good Morning")
// "To Sayed: Good Morning"

التكليف 04

إعداد خيارات Jest وال Coverage

  • قم بتعديل الإعدادات التالية داخل package.json
  • اجعل أمر test يقوم بتشغيل Jest مع مراقبة جميع ملفات الاختبارات
  • قم بتفعيل جميع ال Coverage
  • اجعل التقرير بصيغة HTML
  • اجعل مجلد التقارير بإسم test-reports
  • اجمع التغطية من ملفات js و jsx داخل مجلد src فقط
  • استبعد مجلد build من التغطية وكذلك node_modules

{
  "scripts": {
    "test": "jest"
  },
  "jest": {}
}

حلول التكليفات

Premium

حلول التكليفات متاحة للأعضاء ال Premium

راجع الحلول وطور مهاراتك مع العضوية المميزة

اكتشف العضوية المميزة