"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > اختبر تطبيق JavaScript الخاص بك مع Jest

اختبر تطبيق JavaScript الخاص بك مع Jest

تم النشر بتاريخ 2024-09-01
تصفح:873

Test Your JavaScript App With Jest

يعد الاختبار جزءًا مهمًا من تطوير البرامج الذي يضمن أن تطبيقك يتصرف كما هو متوقع. أحد أطر الاختبار الأكثر شيوعًا في نظام JavaScript البيئي هو Jest. تم تطوير Jest بواسطة Facebook، وهو معروف ببساطته وسهولة استخدامه، مما يجعله خيارًا ممتازًا لكل من المطورين المبتدئين وذوي الخبرة.

البدء مع Jest

قبل أن نتعمق في الأمثلة، فلنقم بإعداد Jest في مشروعك. إذا لم تكن قد قمت بذلك بالفعل، فيمكنك تثبيته باستخدام npm:

npm install --save-dev jest

بعد ذلك، قم بإضافة نص اختباري إلى ملف package.json الخاص بك:

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

أنت الآن جاهز لكتابة بعض الاختبارات!
لنقم بإنشاء دالة بسيطة للاختبار. قم بإنشاء ملف باسم math.js:

// math.js
function add(a, b) {
  return a   b;
}
module.exports = add;

الآن، دعونا نكتب اختبارًا لهذه الوظيفة. قم بإنشاء ملف باسم math.test.js:

// math.test.js
const add = require('./math');

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

في هذا الاختبار، نستخدم وظيفة الاختبار لتحديد حالة الاختبار. يتم استخدام الدالة المتوقعة للتأكيد على أن نتيجة الإضافة (1، 2) تساوي 3.

إجراء الاختبارات

يمكنك إجراء اختباراتك عن طريق تنفيذ الأمر التالي في جهازك الطرفي:

npm test

يجب أن تشاهد نتيجة تشير إلى اجتياز الاختبار.

اختبار التعليمات البرمجية غير المتزامنة

يدعم Jest أيضًا اختبار التعليمات البرمجية غير المتزامنة. دعونا نعدل ملف math.js ليشمل دالة غير متزامنة:

// math.js
function fetchData() {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve('peanut butter');
    }, 1000);
  });
}

module.exports = { add, fetchData };

الآن، لنكتب اختبارًا لـ fetchData:

// math.test.js
const { add, fetchData } = require('./math');

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

test('fetches data', async () => {
  const data = await fetchData();
  expect(data).toBe('peanut butter');
});

في هذا الاختبار، قمنا بوضع علامة على وظيفة الاختبار على أنها غير متزامنة ونستخدم الانتظار لانتظار حل الوعد.

وظائف السخرية

يوفر Jest إمكانات سخرية قوية. لنفترض أن لديك وظيفة تقوم باستدعاء واجهة برمجة التطبيقات (API). يمكنك الاستهزاء بهذه الوظيفة للتحكم في سلوكها أثناء الاختبارات.
إليك مثال:

// api.js
const axios = require('axios');

async function getUser() {
  const response = await axios.get('https://api.example.com/user');
  return response.data;
}

module.exports = getUser;

يمكنك الاستهزاء بالمحاور في اختبارك:

// api.test.js
const axios = require('axios');
const getUser = require('./api');

jest.mock('axios');

test('fetches user data', async () => {
  const user = { name: 'John Doe' };
  axios.get.mockResolvedValue({ data: user });

  const result = await getUser();
  expect(result).toEqual(user);
});

في هذا الاختبار، قمنا بالسخرية من طريقة axios.get لإرجاع استجابة محددة مسبقًا، مما يسمح لنا باختبار getUser دون إجراء استدعاء فعلي لواجهة برمجة التطبيقات.

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

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/jospin6/test-your-javascript-app-with-jest-314c?1 إذا كان هناك أي انتهاك، فيرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3