Jest

From binaryoption
Jump to navigation Jump to search
Баннер1

Jest: دليل شامل للمبتدئين في اختبار جافاسكربت

Jest هو إطار عمل مفتوح المصدر لاختبار جافاسكربت، تم تطويره بواسطة فيسبوك (Meta). يهدف Jest إلى توفير تجربة اختبار شاملة وسهلة الاستخدام، خاصةً للتطبيقات التي تستخدم مكتبة React، ولكن يمكن استخدامه مع أي مشروع جافاسكربت. هذه المقالة موجهة للمبتدئين وتهدف إلى تقديم فهم أساسي لـ Jest وكيفية استخدامه.

ما هو اختبار جافاسكربت؟

قبل الغوص في Jest، من المهم فهم أهمية اختبار البرمجيات. اختبار جافاسكربت هو عملية التحقق من أن الكود الخاص بك يعمل على النحو المتوقع. يساعد في تحديد الأخطاء (bugs) والمشاكل المحتملة قبل نشر التطبيق، مما يضمن جودة واستقرار المنتج النهائي. هناك أنواع مختلفة من الاختبارات، بما في ذلك:

  • اختبار الوحدة (Unit Testing): اختبار أصغر وحدة من الكود، مثل دالة أو مكون.
  • اختبار التكامل (Integration Testing): اختبار كيفية تفاعل الوحدات المختلفة مع بعضها البعض.
  • الاختبار الشامل (End-to-End Testing): اختبار التطبيق بأكمله من وجهة نظر المستخدم.

لماذا نستخدم Jest؟

يقدم Jest العديد من المزايا التي تجعله خيارًا شائعًا لاختبار جافاسكربت:

  • سهولة الإعداد والاستخدام: Jest مُصمم ليكون سهل الإعداد والاستخدام، مع الحد الأدنى من التهيئة المطلوبة.
  • السرعة: Jest سريع جدًا في تشغيل الاختبارات، مما يوفر وقت التطوير.
  • التوازي: يمكن لـ Jest تشغيل الاختبارات بالتوازي، مما يزيد من السرعة.
  • المحاكاة (Mocking): يوفر Jest أدوات قوية لإنشاء محاكاة للكائنات والوظائف، مما يسمح لك بعزل الكود الذي تختبره.
  • التغطية (Coverage): يقدم Jest تقارير تغطية الكود، مما يوضح مقدار الكود الخاص بك الذي تم اختباره.
  • التصحيح (Debugging): يوفر Jest أدوات تصحيح سهلة الاستخدام.

تثبيت Jest

لتثبيت Jest، يمكنك استخدام مدير الحزم npm أو Yarn. افتح سطر الأوامر (terminal) وانتقل إلى دليل مشروعك، ثم قم بتشغيل الأمر التالي:

```bash npm install --save-dev jest ```

أو

```bash yarn add --dev jest ```

كتابة أول اختبار باستخدام Jest

لنبدأ بكتابة اختبار بسيط. لنفترض أن لدينا دالة بسيطة تجمع رقمين:

```javascript // sum.js function sum(a, b) {

 return a + b;

}

module.exports = sum; ```

لإنشاء اختبار لهذه الدالة، قم بإنشاء ملف جديد باسم `sum.test.js` (أو أي اسم ينتهي بـ `.test.js` أو `.spec.js`) في نفس الدليل:

```javascript // sum.test.js const sum = require('./sum');

test('adds 1 + 2 to equal 3', () => {

 expect(sum(1, 2)).toBe(3);

}); ```

في هذا الاختبار:

  • `require('./sum')` يستورد الدالة `sum` التي نريد اختبارها.
  • `test('adds 1 + 2 to equal 3', () => { ... });` يعرف حالة اختبار واحدة. تأخذ الدالة `test` وصفًا للاختبار ودالة تحتوي على رمز الاختبار.
  • `expect(sum(1, 2)).toBe(3);` هو التأكيد (assertion). يتحقق من أن نتيجة استدعاء `sum(1, 2)` تساوي 3. `toBe` هو أحد المطابقات (matchers) المتوفرة في Jest.

تشغيل الاختبارات

لتشغيل الاختبارات، أضف سطرًا إلى قسم `scripts` في ملف `package.json` الخاص بك:

```json {

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

} ```

ثم قم بتشغيل الأمر التالي في سطر الأوامر:

```bash npm test ```

أو

```bash yarn test ```

سيقوم Jest بتشغيل الاختبارات وعرض النتائج.

المطابقات (Matchers) في Jest

يوفر Jest مجموعة واسعة من المطابقات التي يمكنك استخدامها للتحقق من قيم مختلفة. بعض المطابقات الشائعة تشمل:

  • `toBe(value)`: يتحقق من أن القيمة تساوي `value`.
  • `toEqual(value)`: يتحقق من أن الكائن يساوي `value` بعمق.
  • `toBeNull()`: يتحقق من أن القيمة تساوي `null`.
  • `toBeUndefined()`: يتحقق من أن القيمة تساوي `undefined`.
  • `toBeDefined()`: يتحقق من أن القيمة معرفة.
  • `toBeGreaterThan(number)`: يتحقق من أن القيمة أكبر من `number`.
  • `toBeLessThan(number)`: يتحقق من أن القيمة أقل من `number`.
  • `toContain(item)`: يتحقق من أن المصفوفة تحتوي على `item`.
  • `toMatch(regexp)`: يتحقق من أن السلسلة تطابق التعبير النمطي `regexp`.

المحاكاة (Mocking) في Jest

المحاكاة هي تقنية تستخدم لاستبدال تبعيات الكود بوظائف أو كائنات وهمية. هذا يسمح لك بعزل الكود الذي تختبره والتحكم في سلوك التبعيات. يوفر Jest أدوات قوية لإنشاء محاكاة.

مثال:

```javascript // api.js function fetchData() {

 // يقوم بإجراء طلب API حقيقي
 return fetch('https://example.com/data');

}

module.exports = fetchData;

// api.test.js const fetchData = require('./api'); jest.mock('./api'); // قم بمحاكاة الوحدة النمطية api.js

test('fetches data correctly', async () => {

 fetchData.mockResolvedValue({ data: 'mock data' }); // قم بتحديد القيمة التي يجب أن تعيدها المحاكاة
 const data = await fetchData();
 expect(data).toEqual({ data: 'mock data' });

}); ```

التغطية (Coverage) في Jest

تساعدك تقارير التغطية في تحديد مقدار الكود الخاص بك الذي تم اختباره. لتشغيل تقارير التغطية، استخدم الأمر التالي:

```bash npm test -- --coverage ```

أو

```bash yarn test --coverage ```

سيقوم Jest بإنشاء تقرير تغطية HTML يمكنك فتحه في المتصفح.

الموارد الإضافية

استراتيجيات تداول الخيارات الثنائية والتحليل الفني وحجم التداول

على الرغم من أن Jest هو إطار عمل لاختبار جافاسكربت، إلا أن فهم استراتيجيات التداول والتحليل قد يكون مفيدًا للمطورين الذين يعملون على تطبيقات مالية. إليك بعض الروابط ذات الصلة:

خاتمة

Jest هو إطار عمل قوي وسهل الاستخدام لاختبار جافاسكربت. من خلال فهم المفاهيم الأساسية التي تمت تغطيتها في هذه المقالة، يمكنك البدء في كتابة اختبارات موثوقة وفعالة لتطبيقاتك. تذكر أن الاختبار هو جزء أساسي من عملية تطوير البرمجيات، ويساعد في ضمان جودة واستقرار الكود الخاص بك.


ابدأ التداول الآن

سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер