🟩 شرح Node.js

الاختبار والتنقيح

لماذا الاختبار؟

الاختبارات تثبت أن كودك يعمل وتمنع كسر ما كان يعمل عند التعديل. ثقة أكبر عند التطوير وتعاون أأمن في الفِرق.

مشغّل الاختبار المدمج

Node الحديث يأتي بمشغّل اختبار جاهز بلا مكتبات:

// math.test.js
import { test } from "node:test";
import assert from "node:assert";

test("الجمع يعمل", () => {
  assert.strictEqual(2 + 3, 5);
});

test("النص بأحرف كبيرة", () => {
  assert.strictEqual("abc".toUpperCase(), "ABC");
});

تشغيله:

node --test

أطر الاختبار الشائعة

  • Jest — الأشهر، شامل (تأكيدات، محاكاة، تغطية).
  • Vitest — سريع، متوافق مع Jest.
  • Mocha + Chai — مرن وكلاسيكي.

مثال Jest:

test("يجمع رقمين", () => {
  expect(add(2, 3)).toBe(5);
});

أنواع الاختبارات

النوعيختبر
وحدة (Unit)دالة/وحدة منفردة
تكامل (Integration)تعاون عدّة أجزاء
شامل (E2E)التطبيق كاملًا كمستخدم

التنقيح (Debugging)

console.log

أبسط أداة — اطبع القيم لتتبّع التنفيذ.

المنقّح المدمج

node --inspect app.js

ثم افتح chrome://inspect في Chrome لتنقيح بصري (نقاط توقّف، فحص المتغيّرات).

الفحص والتنسيق (Lint & Format)

  • ESLint — يكتشف الأخطاء وأنماط الكود السيّئة:
npm install -D eslint
npx eslint .
  • Prettier — يوحّد تنسيق الكود تلقائيًّا:
npm install -D prettier
npx prettier --write .

💡 دمج ESLint + Prettier في المشروع يرفع جودة الكود ويوحّد أسلوب الفريق.

أخطاء شائعة

  • إهمال الاختبارات حتى يكبر المشروع ويصعب اختباره.
  • الاعتماد على console.log فقط بدل المنقّح للمشاكل المعقّدة.

🎯 التالي: متغيّرات البيئة والنشر.