Jest



jest

Jest

تثبيت Jest باستخدام yarn :

npm install --save-dev jest

أو npm :

yarn add --dev jest

دعونا نبدأ بكتابة اختبار لوظيفة افتراضية تضيف رقمين. أولاً ، أنشئ ملف sum.js :

function sum(a, b) {
  return a + b;
}
module.exports = sum;

ثم قم بإنشاء ملف يسمى sum.test.js سيحتوي هذا على الاختبار الفعلي لدينا:

const sum = require('./sum');

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});

أضف القسم التالي إلى package.json :

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

أخيرًا ، قم بتشغيل yarn test وسيقوم Jest بطباعة هذه الرسالة:

PASS  ./sum.test.js
✓ adds 1 + 2 to equal 3 (5ms)

لقد كتبت بنجاح أول اختبار لك باستخدام Jest!

هذا الاختبار المستخدم expect و toBe لاختبار أن قيمتين متطابقة تماما. للتعرف على الأشياء الأخرى التي يمكن لـ Jest اختبارها ، راجع استخدام Matchers .

يعمل من سطر الأوامر

يمكنك تشغيل Jest مباشرةً من CLI (إذا كان متاحًا على مستوى العالم في PATH الخاص بك ، على سبيل المثال عن طريق yarn global add jest ) مع مجموعة متنوعة من الخيارات المفيدة.

في ما يلي كيفية تشغيل Jest على الملفات المطابقة my-test ، باستخدام config.json كملف تهيئة وعرض إشعار نظام التشغيل الأصلي بعد التشغيل:

jest my-test --notify --config=config.json

إذا كنت ترغب في معرفة المزيد حول تشغيل jest خلال سطر الأوامر ، فألق نظرة على صفحة خيارات Jest CLI .

التكوين الإضافي

باستخدام بابل

لاستخدام Babel ، قم بتثبيت حزم babel-jest و regenerator-runtime :

npm install --save-dev babel-jest babel-core regenerator-runtime

ملاحظة: إذا كنت تستخدم الإصدار 7 من babel فأنت بحاجة إلى تثبيت babel-jest باستخدام الأمر التالي:

npm install --save-dev babel-jest '[email protected]^7.0.0-0' @babel/core regenerator-runtime

ملاحظة: لا تحتاج إلى تثبيت regenerator-runtime بشكل صريح إذا كنت تستخدم npm 3 أو 4 أو Yarn

لا تنس إضافة ملف .babelrc في المجلد الجذر لمشروعك. على سبيل المثال ، إذا كنت تستخدم ES6 و React.js مع الإعدادات المسبقة babel-preset-env والإعدادات React.js babel-preset-env React.js babel-preset-react :

{
  "presets": ["env", "react"]
}

أنت الآن جاهز لاستخدام كل ميزات ES6 ورد الفعل الخاص به.

ملاحظة: إذا كنت تستخدم تكوين Babel أكثر تعقيدًا ، باستخدام خيار env من Babel ، فضع في اعتبارك أن NODE_ENV سيحدد NODE_ENV تلقائيًا test . لن يستخدم قسم development مثل Babel بشكل افتراضي عند عدم تعيين NODE_ENV .

ملاحظة: إذا قمت بإيقاف تشغيل Transpilation لـ ES6 modules مع الخيار { "modules": false } ، يجب عليك التأكد من تشغيل هذا في بيئة الاختبار الخاصة بك.

{
  "presets": [["env", {"modules": false}], "react"],
  "env": {
    "test": {
      "presets": [["env"], "react"]
    }
  }
}

ملاحظة: يتم تثبيت babel-jest تلقائيًا عند تثبيت Jest وسيقوم تلقائيًا بتحويل الملفات في حالة وجود تكوين بابل في مشروعك. لتجنب هذا السلوك ، يمكنك بشكل صريح إعادة تعيين خيار تكوين transform :

// package.json
{
  "jest": {
    "transform": {}
  }
}

باستخدام webpack

يمكن استخدام webpack في المشاريع التي تستخدم webpack لإدارة الأصول والأنماط والتجميع. تقدم webpack بعض التحديات الفريدة من الأدوات الأخرى. ارجع إلى دليل webpack للبدء.

باستخدام TypeScript

لاستخدام TypeScript في اختباراتك ، يمكنك استخدام ts-jest .