0Pricing
PHP Academy · درس

التأكيدات وأساليب الاختبار

استخدموا assertEquals وassertSame وassertNull وغيرها من التأكيدات

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

ما هي التأكيدات؟

تتحقق التأكيدات من أن الناتج الفعلي للتعليمات البرمجية يطابق القيمة المتوقعة. يوفّر PHPUnit مكتبة غنية من أساليب التأكيد.

assertEquals مقارنةً بـ assertSame

يستخدم assertEquals مقارنة غير صارمة (==). أما assertSame فيستخدم مقارنة صارمة (===)، ويتحقق من النوع والقيمة معًا.

<?php
$this->assertEquals(0, false);      // passes (0 == false)
$this->assertSame(0, false);        // FAILS  (0 !== false)

assertTrue و assertFalse

اختبر ما إذا كانت القيمة تساوي true تمامًا أو false تمامًا.

<?php
$this->assertTrue(is_string("hello"));
$this->assertFalse(is_numeric("abc"));

assertNull و assertNotNull

تحقّق مما إذا كانت القيمة تساوي null.

<?php
$user = $repo->find(999);
$this->assertNull($user);

$user = $repo->find(1);
$this->assertNotNull($user);

assertCount

تحقّق من أن الكائن القابل للعد يحتوي على العدد المتوقع من العناصر.

<?php
$items = $cart->getItems();
$this->assertCount(3, $items);

assertStringContainsString

تحقّق من أن سلسلة نصية تحتوي على سلسلة فرعية، مع مراعاة حالة الأحرف.

<?php
$html = $template->render();
$this->assertStringContainsString("<h1>Welcome</h1>", $html);

assertInstanceOf

تحقّق من أن الكائن مثيل لفئة أو واجهة معيّنة.

<?php
$handler = $factory->create("email");
$this->assertInstanceOf(EmailHandler::class, $handler);

assertThrows / expectException

توقّع أن يُلقى استثناء أثناء الاختبار.

<?php
public function test_throws_on_invalid_input(): void
{
    $this->expectException(\InvalidArgumentException::class);
    $this->expectExceptionMessage("must be positive");
    new Product(-1);
}

assertArrayHasKey

تحقّق من أن المصفوفة تحتوي على مفتاح محدد.

<?php
$result = $api->getUser(1);
$this->assertArrayHasKey("email", $result);
$this->assertArrayHasKey("id", $result);

assertEqualsWithDelta

قارن أعداد الفاصلة العائمة ضمن هامش سماح محدد، يُسمى delta.

<?php
$this->assertEqualsWithDelta(3.14159, M_PI, 0.001);

رسائل الفشل المخصّصة

مرّر رسالة بوصفها الوسيط الأخير إلى أي تأكيد لتحسين ناتج فشل الاختبار.

<?php
$this->assertEquals(200, $response->status(), "Expected HTTP 200 OK response");

الملخص

استخدم assertSame للمساواة الصارمة، وassertEquals للمساواة غير الصارمة، والتأكيدات المتخصصة مثل assertInstanceOf وassertCount وassertThrows لكتابة اختبارات واضحة.

تحقّق سريع

أي تأكيد يتحقق أيضًا من نوع القيمة؟

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

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

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

ماذا ستتعلم في «التأكيدات وأساليب الاختبار»؟

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

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

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

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

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

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

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

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

  1. إعداد PHPUnit وأول اختبار
  2. التأكيدات وأساليب الاختبار
  3. موفّرو البيانات للاختبارات ذات المعاملات
  4. محاكاة التبعيات باستخدام PHPUnit
← العودة إلى PHP Academy