Zig Academy · درس

التوكيدات باستخدام std.testing

استخدموا expect وexpectEqual وما شابهما

الدرس 2 من 413 خطوة

التوكيدات باستخدام std.testing درس مجاني في Zig Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Zig Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Zig Academy 4 دروس في المجموع.

مساحة أسماء testing

توجد دوال المساعدة الخاصة بالتأكيد في Zig ضمن std.testing. استوردها باسم مختصر حتى تكون قراءة كل فحص داخل كتل الاختبار واضحة.

const testing = std.testing;

استخدام expect للقيم المنطقية

أبسط دالة مساعدة هي expect. فهي تستقبل قيمة منطقية واحدة وتفشل الاختبار عندما يكون ذلك الشرط خاطئًا.

try testing.expect(value > 0);

تعيد الدوال المساعدة أخطاءً

تعيد كل دالة مساعدة للاختبار خطأً عند الفشل، لذلك تسبقها دائمًا بـ try. وهذا ما يجعل الاختبار يتوقف ويعرض التقرير.

استخدام expectEqual للقيم

لمقارنة قيمتين، استخدم expectEqual. فهي تتحقق من التساوي، وعند الفشل تطبع القيمة المتوقعة والقيمة الفعلية.

try testing.expectEqual(5, add(2, 3));

تأتي القيمة المتوقعة أولًا

في expectEqual تكون الوسيطة الأولى هي القيمة المتوقعة، والثانية هي ما أنتجته شيفرتك. ويؤثر الترتيب في رسالة الفشل.

try testing.expectEqual(42, result);

مقارنة الشرائح

تتساوى شريحتان عندما تتطابق عناصرهما، لا مؤشراتهما. استخدم expectEqualSlices وحدد نوع العناصر لها.

try testing.expectEqualSlices(u8, "hi", out);

مقارنة السلاسل النصية

بالنسبة إلى النص، تقارن expectEqualStrings بين شريحتي بايت، وتطبع فرقًا سهل القراءة عند اختلافهما، وهذا مثالي لفحص المخرجات.

try testing.expectEqualStrings("ok", msg);

التأكيد على حدوث خطأ

قد يُفترض أحيانًا أن يفشل استدعاء ما. لفّه داخل expectError للتأكيد على أنه يعيد خطأً محددًا لا قيمة.

try testing.expectError(error.Bad, parse("x"));

الأعداد العشرية التقريبية

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

try testing.expectApproxEqAbs(1.0, x, 0.001);

اقرأ مخرجات الفشل

عندما يفشل تأكيد، تطبع Zig القيمتين المتوقعة والفعلية مباشرةً في التقرير. ويشير هذا الفرق عادةً إلى موضع الخطأ مباشرةً.

اختر الدالة المساعدة المناسبة

طابق الدالة المساعدة مع البيانات: استخدم expectEqual للقيم المفردة، ودوال الشرائح والسلاسل للتسلسلات، وexpectError لمسار الفشل.

فحص سريع

تحتاج إلى التأكيد على تساوي قيمتين نصيتين تمامًا في اختبار. ما الدالة المساعدة الأنسب؟

مراجعة

تعلّمت مجموعة أدوات std.testing: ‏expect وexpectEqual وفحوص الشرائح والسلاسل، بالإضافة إلى expectError. وتحتاج كل واحدة منها إلى try قبلها. ✅

البدء مجانًا

تعلم Zig مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

الأسئلة الشائعة

هل درس «التوكيدات باستخدام std.testing» مجاني؟

نعم — نص درس «التوكيدات باستخدام std.testing» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Zig Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Zig Academy 4 دروس في المجموع.

ماذا ستتعلم في «التوكيدات باستخدام std.testing»؟

استخدموا expect وexpectEqual وما شابهما تتمرن على Zig Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Zig Academy؟

لا تُشترط خبرة سابقة. Zig Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «التوكيدات باستخدام std.testing»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Zig Academy هذا؟

نعم. كل درس في Zig Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. كتابة كتل test
  2. التوكيدات باستخدام std.testing
  3. مخصّص الاختبار يكتشف التسريبات
  4. تشغيل الاختبارات وتصفيتها
← العودة إلى Zig Academy