المتطلبات الأساسية: تجهيز العدة قبل الانطلاق

الكاتب: قالب اقرأتاريخ النشر: آخر تحديث: وقت القراءة:
للقراءة
عدد الكلمات:
كلمة
عدد التعليقات: 0 تعليق
نبذة عن المقال: تعرّف على المتطلبات الأساسية لبدء دورة اختبار الوحدات (Unit Testing). نغطي معرفة JavaScript و TypeScript والأدوات اللازمة مثل Node.js و Git.

أهلاً بك في بداية رحلتنا الممتعة في عالم اختبار الوحدات (Unit Testing)! 

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

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

دورة اختبار الوحدات (2): المتطلبات الأساسية (Prerequisites)

فهم قوي لأساسيات JavaScript الحديثة (ES6+)

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

هذه هي المفاهيم التي يجب أن تكون على دراية تامة بها:

1. المتغيرات، الدوال، وأنواع البيانات

يجب أن تكون مرتاحاً في التعامل مع let و const، وفهم الفرق بينهما. بالإضافة إلى ذلك، يجب أن تكون كتابة الدوال (Functions)، وخاصة الدوال السهمية (Arrow Functions)، أمراً طبيعياً بالنسبة لك.

2. المصفوفات والكائنات (Arrays & Objects)

ستتعامل كثيراً مع هياكل البيانات. تأكد من أنك تتقن التعامل مع المصفوفات وتوابعها الشهيرة مثل .map(), .filter(), و .reduce(). كذلك، يجب أن تكون قادراً على التعامل مع الكائنات، بما في ذلك الوصول إلى خصائصها وتحديثها واستخدام تقنيات مثل الـ (Object Destructuring).

3. وحدات JavaScript (ES Modules)

في المشاريع الحديثة، نقوم بتقسيم الكود إلى ملفات متعددة تسمى وحدات (Modules). من الضروري جداً أن تفهم كيفية استخدام export لتصدير الدوال أو المتغيرات من ملف، وكيفية استخدام import لاستيرادها في ملف آخر. سنعتمد على هذا المبدأ بشكل كبير لفصل كود الاختبار عن كود التطبيق.

مثال بسيط:

لنفترض أن لدينا ملف utils/math.js:

JavaScript
// utils/math.js
export const add = (a, b) => {
  return a + b;
};

وفي ملف آخر، يمكننا استيراد هذه الدالة واستخدامها:

JavaScript
// main.js
import { add } from './utils/math.js';

const sum = add(5, 10);
console.log(sum); // Outputs: 15

4. البرمجة غير المتزامنة (Asynchronous JavaScript)

الكثير من العمليات في تطبيقات الويب الحديثة غير متزامنة، مثل طلب البيانات من خادم (API). لا يمكننا إيقاف التطبيق بأكمله في انتظار وصول الرد. لذلك، من الضروري أن تكون لديك خبرة جيدة في التعامل مع Promises وبشكل أخص، الصيغة الأحدث والأسهل للقراءة: async/await.

مثال توضيحي:

JavaScript
// Simulates fetching user data from an API
function fetchUserData(userId) {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve({ id: userId, name: 'John Doe', email: 'john.doe@example.com' });
    }, 1000); // Simulate a 1-second network delay
  });
}

async function displayUser(userId) {
  console.log('Fetching user data...');
  const user = await fetchUserData(userId);
  console.log(`User Name: ${user.name}`);
}

displayUser(1);

نصيحة

إذا كانت مفاهيم مثل Promises أو async/await لا تزال غامضة بالنسبة لك، فننصحك بشدة بمراجعتها. اختبار الكود غير المتزامن له تقنياته الخاصة التي سنغطيها، ولكن فهم الأساسيات سيجعل الأمور أسهل بعشرة أضعاف.

معرفة أساسية بـ Node.js و npm

على الرغم من أننا نكتب JavaScript التي قد تعمل في المتصفح، فإن بيئة الاختبار نفسها (بما في ذلك أداة تشغيل الاختبارات Test Runner) تعمل عادةً في بيئة Node.js. لست بحاجة إلى أن تكون خبيرًا في Node.js، ولكن يجب أن تكون مرتاحًا مع ما يلي:

  • ما هو Node.js: فهم أنه بيئة لتشغيل JavaScript خارج المتصفح.
  • استخدام مدير الحزم (npm أو yarn): يجب أن تعرف كيفية تثبيت الحزم (Dependencies) التي يحتاجها مشروعك باستخدام سطر الأوامر، على سبيل المثال npm install vitest --save-dev.
  • فهم ملف package.json: معرفة الغرض من هذا الملف، وخاصة قسم scripts الذي سنستخدمه لتشغيل اختباراتنا بسهولة.

مثال على قسم scripts في package.json:

CODE
{
  "name": "my-testing-project",
  "version": "1.0.0",
  "scripts": {
    "test": "vitest"
  },
  "devDependencies": {
    "vitest": "^1.0.0"
  }
}

الراحة في استخدام سطر الأوامر (Command Line)

ستكون واجهة سطر الأوامر (CLI) صديقك المقرب خلال هذه الدورة. سنستخدمها لتثبيت الحزم، وتشغيل الاختبارات، والتعامل مع نظام الملفات. لا تحتاج إلى إتقان متقدم، ولكن يجب أن تكون قادراً على:

  • التنقل بين المجلدات (cd).
  • عرض محتويات المجلد (ls في macOS/Linux أو dir في Windows).
  • إنشاء مجلدات جديدة (mkdir).

ما الذي لا تحتاجه؟

لإزالة أي قلق، إليك بعض الأشياء التي لا تحتاج إلى معرفتها مسبقًا:

  • أي إطار عمل للاختبار (Testing Framework): لا نفترض أن لديك أي خبرة سابقة مع Vitest, Jest, Mocha, أو أي أداة أخرى. سنقوم بتعليمك كل شيء من الصفر.
  • خبرة في إطار عمل للواجهات الأمامية (Frontend Framework): تركز هذه الدورة على مبادئ اختبار الوحدات لـ JavaScript بشكل عام. المهارات التي ستتعلمها هنا قابلة للتطبيق على أي مشروع، سواء كان يستخدم React, Vue, Svelte, أو كان مجرد Vanilla JavaScript.

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

قد تُعجبك هذه المشاركات

إرسال تعليق

ليست هناك تعليقات

7627059358572141466

العلامات المرجعية

قائمة العلامات المرجعية فارغة ... قم بإضافة مقالاتك الآن

    البحث