عقلية الاختبار — تأكيدات صغيرة وAAA ومن الأحمر إلى الأخضر ثم إعادة الهيكلة
كوّنوا عادة كتابة اختبارات صغيرة: افهموا التأكيدات ونمط Arrange–Act–Assert وحلقة الأحمر→الأخضر→إعادة الهيكلة
عقلية الاختبار — تأكيدات صغيرة وAAA ومن الأحمر إلى الأخضر ثم إعادة الهيكلة درس مجاني في JavaScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في JavaScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
لماذا عقلية الاختبار؟
الهدف: التفكير في اختبارات صغيرة وموثوقة.
- استخدام assert صغير للتحقق من النتائج
- AAA: Arrange → Act → Assert
- حلقة Red → Green → Refactor
- تسمية الاختبارات حسب السلوك

تأكيد صغير
يطبع assertEqual الصغير نتيجة النجاح أو الفشل. وهذا يحاكي ما تفعله أطر الاختبار الحقيقية.
// Minimal assertEqual for quick checks
function assertEqual(actual, expected, name) {
if (actual === expected) {
console.log("✅", name);
} else {
console.log("❌", name, "expected:", expected, "got:", actual);
}
}
// Demo check
assertEqual(2 + 3, 5, "adds numbers");

Arrange–Act–Assert
يحافظ AAA على قابلية قراءة الاختبارات: جهّز البيانات، واستدعِ الدالة، ثم تحقّق من النتيجة.
// AAA: Arrange → Act → Assert
// Arrange: prepare inputs
function sum(a, b) { return a + b; }
const a = 2;
const b = 4;
// Act: call the function
const result = sum(a, b);
// Assert: compare
assertEqual(result, 6, "sum returns a + b");

Red→Green→Refactor
اكتب اختبارًا يفشل (red)، واجعله ينجح (green)، ثم نظّف الشيفرة (refactor).
// Red → Green → Refactor with a tiny example
// 1) Red: write a failing test (expect wrong implementation)
function greet(name) { return "Hi " + name; } // simple implementation
// Intentionally failing expectation first (red)
assertEqual(greet("Ayla"), "Hello Ayla", "greet says Hello"); // likely fails
// 2) Green: fix the code to satisfy the test
function greetFixed(name) { return "Hello " + name; }
assertEqual(greetFixed("Ayla"), "Hello Ayla", "greet says Hello (fixed)");
// 3) Refactor: improve code without changing behavior
function greetRefined(name) {
const cleaned = String(name).trim();
return "Hello " + cleaned;
}
assertEqual(greetRefined(" Ayla "), "Hello Ayla", "greet trims input");

أسماء تركّز على السلوك
سمِّ عمليات التحقق وفقًا لما ينبغي أن تفعله الدالة: الحالات الحدّية والحالات المعتادة.
// Clear names describe behavior, not internals
function isAdult(age) { return age >= 18; }
assertEqual(isAdult(18), true, "isAdult returns true at boundary 18");
assertEqual(isAdult(17), false, "isAdult returns false below boundary");

اختبارات صغيرة ومركّزة
نصائح:
- اجعل الاختبارات صغيرة ومركّزة (فكرة واحدة في كل اختبار).
- اختبر المسار السعيد وحالة حدّية واحدة.
- فضّل الدوال النقية لتسهيل اختبارها.
- أتمت الاختبارات لاحقًا باستخدام Jest/Vitest؛ فالعقلية تأتي أولًا.

اختبار نمط AAA
تحقق سريع: نمط AAA.

مراجعة
مراجعة: استخدم assert صغيرًا، واتبع AAA، وكرّر دورة Red → Green → Refactor. ابدأ بخطوات صغيرة؛ فوضوح الشيفرة أهم من تعقيدها للمبتدئين.

الأسئلة الشائعة
هل درس «عقلية الاختبار — تأكيدات صغيرة وAAA ومن الأحمر إلى الأخضر ثم إعادة الهيكلة» مجاني؟
نعم — نص درس «عقلية الاختبار — تأكيدات صغيرة وAAA ومن الأحمر إلى الأخضر ثم إعادة الهيكلة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة JavaScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة JavaScript Academy 3 دروس في المجموع.
ماذا ستتعلم في «عقلية الاختبار — تأكيدات صغيرة وAAA ومن الأحمر إلى الأخضر ثم إعادة الهيكلة»؟
كوّنوا عادة كتابة اختبارات صغيرة: افهموا التأكيدات ونمط Arrange–Act–Assert وحلقة الأحمر→الأخضر→إعادة الهيكلة تتمرن على JavaScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ JavaScript Academy؟
لا تُشترط خبرة سابقة. JavaScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.
كم من الوقت يستغرق درس «عقلية الاختبار — تأكيدات صغيرة وAAA ومن الأحمر إلى الأخضر ثم إعادة الهيكلة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس JavaScript Academy هذا؟
نعم. كل درس في JavaScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- عقلية الاختبار — تأكيدات صغيرة وAAA ومن الأحمر إلى الأخضر ثم إعادة الهيكلة
- الفحص باستخدام ESLint وتنسيق Prettier
- أساسيات CI — تشغيل الفحص والاختبارات مع كل دفع