Theme
Primary Color

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

[ 6 ] تكليفات على [ Matchers ]

التكليف 01

اختبار عناصر ال Array

  • لديك Array تحتوي على أسماء كورسات وممنوع تعديلها
  • تأكد أن عدد العناصر 4 بطريقتين مختلفتين
  • تأكد أنها تحتوي على "JavaScript"
  • تأكد أنها لا تحتوي على "Python"
  • باستخدام Loop تأكد أن كل عنصر ليس نصا فارغا
  • ضع جميع الاختبارات داخل describe
courses.js
const courses = ["HTML", "CSS", "JavaScript", "TypeScript"];

module.exports = courses;
tests/courses.test.js
const courses = require("../courses");

// Write Your Tests Here

التكليف 02

اختبار الأرقام والحدود

  • لديك Array تحتوي على تقييمات وممنوع تعديلها
  • باستخدام Loop تأكد أن نوع كل عنصر هو "number"
  • تأكد أن كل تقييم أكبر من أو يساوي 1
  • تأكد أن كل تقييم أقل من أو يساوي 5
  • تأكد أن ال Array لا تحتوي على 0
  • اكتب اختبارا مستقلا لكل شرط
ratings.js
const ratings = [1, 4, 3, 5, 2];

module.exports = ratings;

التكليف 03

 استخدام Truthy و Falsy

  • قم بإنشاء Function بإسم canRegister تستقبل عمر الشخص
  • تقوم بإرجاع true إذا كان العمر أكبر من أو يساوي 18
  • تقوم بإرجاع false إذا كان العمر أقل من 18 أو لم يتم تمريره
  • اختبر العمر 18 باستخدام toBeTruthy
  • اختبر العمر 16 باستخدام toBeFalsy
  • اختبر عدم تمرير العمر باستخدام not.toBeTruthy
  • اختبر العمر 25 باستخدام not.toBeFalsy
// can-register.js

// Write Function Code Here

التكليف 04

اختبار بيانات المستخدم

  • لديك Object يحتوي على بيانات مستخدم وممنوع تعديله
  • تأكد من وجود الخاصية username
  • تأكد أن الخاصية role موجودة وقيمتها "Student"
  • تأكد أن قيمة website تبدأ بـ https:// باستخدام toMatch
  • تأكد أن bio تحتوي على كلمة "JavaScript" باستخدام toMatch
  • تأكد أن قيمة phone هي undefined
  • تأكد من عدم وجود الخاصية password
user.js
const user = {
  username: "Osama",
  role: "Student",
  website: "https://elzero.org",
  bio: "I Love JavaScript",
  phone: undefined,
};

module.exports = user;

التكليف 05

إنشاء Matcher لفحص الأرقام الزوجية

  • باستخدام expect.extend قم بإنشاء Matcher بإسم toBeEven
  • ال Matcher تنجح إذا كان باقي قسمة الرقم على 2 يساوي صفر
  • اعتبر أن القيم المستخدمة أعداد صحيحة
  • قم بإرجاع pass و message من ال Matcher
  • اجعل رسالة الفشل مناسبة للاستخدام العادي وللاستخدام مع not
  • اجعل الاختبارات التالية تعمل بدون تعديلها
tests/even.test.js
// Write Your Matcher Here

// Do Not Edit Here
describe("Check Even Numbers", () => {
  test("Ten Is Even", () => {
    expect(10).toBeEven();
  });

  test("Zero Is Even", () => {
    expect(0).toBeEven();
  });

  test("Negative Four Is Even", () => {
    expect(-4).toBeEven();
  });

  test("Seven Is Not Even", () => {
    expect(7).not.toBeEven();
  });
});

التكليف 06

 إنشاء Matcher تقبل حدودا

  • قم بإنشاء Matcher بإسم toHaveLengthBetween
  • تستقبل نصا وحدا أدنى وحدا أقصى لطوله
  • تنجح إذا كان طول النص بين الحدين مع احتساب الحدين
  • اعتبر أن القيمة المستقبلة نص والحد الأدنى لا يتجاوز الحد الأقصى
  • اجعل رسالة الفشل تحتوي على الطول الفعلي والحدين
  • اجعل الرسالة مناسبة أيضا عند استخدام not
  • اجعل الاختبارات التالية تعمل بدون تعديلها

tests/length.test.js
// Write Your Matcher Here

// Do Not Edit Here
describe("Check The Text Length", () => {
  test("Accept A Length Inside The Range", () => {
    expect("Osama").toHaveLengthBetween(3, 8);
  });

  test("Accept The Minimum Length", () => {
    expect("CSS").toHaveLengthBetween(3, 8);
  });

  test("Accept The Maximum Length", () => {
    expect("Frontend").toHaveLengthBetween(3, 8);
  });

  test("Reject A Length Below The Minimum", () => {
    expect("JS").not.toHaveLengthBetween(3, 8);
  });

  test("Reject A Length Above The Maximum", () => {
    expect("JavaScript").not.toHaveLengthBetween(3, 8);
  });
});

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

Premium

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

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

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