0Pricing
PHP Academy · درس

إعداد PHPUnit وأول اختبار

ثبّتوا PHPUnit عبر Composer واكتبوا أول فئة اختبار لكم

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

ما هو PHPUnit؟

PHPUnit هو إطار العمل القياسي لاختبار الوحدات في PHP. يتيح لك كتابة اختبارات آلية تتحقق من الوحدات البرمجية الفردية بمعزل عن غيرها.

تثبيت PHPUnit

ثبّت PHPUnit عبر Composer كتبعية للتطوير.

$ composer require --dev phpunit/phpunit "^11.0"

تهيئة phpunit.xml

أنشئ ملف phpunit.xml لتهيئة مجموعة الاختبارات.

<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
         bootstrap="vendor/autoload.php">
    <testsuites>
        <testsuite name="Unit">
            <directory>tests/</directory>
        </testsuite>
    </testsuites>
</phpunit>

كتابة فئة اختبار

مدّد PHPUnit\Framework\TestCase. كل أسلوب عام يبدأ اسمه بـ test يُعد اختبارًا.

<?php
use PHPUnit\Framework\TestCase;

class CalculatorTest extends TestCase
{
    public function test_addition(): void
    {
        $calc = new Calculator();
        $this->assertEquals(5, $calc->add(2, 3));
    }
}

الفئة قيد الاختبار

فئة Calculator التي يجري اختبارها:

<?php
class Calculator
{
    public function add(int $a, int $b): int
    {
        return $a + $b;
    }
}

تشغيل الاختبارات

شغّل PHPUnit من جذر المشروع.

$ vendor/bin/phpunit
...
OK (1 test, 1 assertion)

اصطلاحات تسمية الاختبارات

هناك أسلوبان: test_method_name()، أي استخدام snake_case مع البادئة test، أو استخدام التعليق التوضيحي @test من دون البادئة.

<?php
/** @test */
public function addition_returns_correct_sum(): void
{
    $this->assertEquals(5, (new Calculator())->add(2, 3));
}

بنية المجلدات

البنية الشائعة: تعكس مجلدات tests بنية src.

src/Calculator.php       → Calculator
tests/CalculatorTest.php → CalculatorTest

setUp() و tearDown()

شغّل التعليمات البرمجية قبل كل أسلوب اختبار وبعده. استخدم setUp() لإنشاء الكائن قيد الاختبار.

<?php
protected function setUp(): void
{
    $this->calc = new Calculator();
}

public function test_add(): void
{
    $this->assertEquals(7, $this->calc->add(3, 4));
}

setUpBeforeClass() و tearDownAfterClass()

شغّل التعليمات البرمجية مرة واحدة قبل جميع الاختبارات في الفئة وبعدها، وهو أمر مفيد للإعدادات المكلفة مثل اتصالات قاعدة البيانات.

تغطية التعليمات البرمجية

أنشئ تقريرًا عن التغطية، ويتطلب ذلك Xdebug أو PCOV:

$ vendor/bin/phpunit --coverage-html coverage/

الملخص

ثبّت PHPUnit عبر Composer كتبعية للتطوير. أنشئ فئة فرعية من TestCase تحتوي على أساليب test_*(). شغّل الاختبارات باستخدام vendor/bin/phpunit. استخدم setUp() لإنشاء الكائنات المشتركة.

تحقّق سريع

ما الفئة الأساسية التي يجب أن ترث منها فئات اختبارات PHPUnit؟

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

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

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

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

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

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

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

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

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

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

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

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

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