اختبار كود PHP: دليل المبتدئين من الصفر إلى أول اختبار

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

لماذا اختبار PHP ليس مخيفًا بل مفيدًا؟

\n\n

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

\n\n

كثير من المطورين المبتدئين يخافون من الاختبارات. يبدو الأمر صعبًا ومملًا ويستغرق وقتًا. في الحقيقة، اختبار الوحدة PHP هو مثل التأمين: تدفع القليل الآن لئلا تخسر كل شيء لاحقًا. في هذا المقال، سنشرح من أين تبدأ اختبار PHP كمبتدئ، وما الأدوات التي تستخدمها، وكيف تكتب أول اختبار دون أن تصاب بالجنون.

\n\n

ما هو الاختبار ولماذا تحتاجه؟

\n\n

اختبار الكود هو عملية التحقق من أن برنامجك يفعل بالضبط ما تتوقعه منه. بدلاً من فتح المتصفح يدويًا والنقر على الروابط في كل مرة، تكتب سكربتات خاصة (اختبارات) تقوم بذلك نيابة عنك.

\n\n

الفوائد الرئيسية:

\n
    \n
  • الثقة في الكود. تعرف بالتأكيد أنه بعد التغييرات لن يتعطل شيء.
  • \n
  • توفير الوقت. الفحص التلقائي أسرع من الفحص اليدوي.
  • \n
  • توثيق. الاختبارات تظهر كيف يجب أن يعمل كودك.
  • \n
  • تبسيط إعادة الهيكلة. يمكنك إعادة كتابة الكود بثقة إذا نجحت الاختبارات.
  • \n
\n\n

الأداة الأكثر شيوعًا لـ اختبار PHP هي PHPUnit. إنها المعيار الفعلي في عالم PHP. معها سنعمل.

\n\n

تثبيت PHPUnit: طريقتان بسيطتان

\n\n

قبل كتابة الاختبارات، تحتاج إلى تثبيت PHPUnit. هناك طريقتان رئيسيتان.

\n\n

الطريقة 1: Composer (موصى بها)

\n\n

إذا كنت تستخدم Composer بالفعل (ويجب أن تستخدمه، فهو مدير التبعيات لـ PHP)، فالأمر بسيط. افتح الطرفية في جذر مشروعك ونفّذ:

\n\n
composer require --dev phpunit/phpunit ^10
\n\n

العلامة --dev تعني أن PHPUnit سيتم تثبيته للتطوير فقط، ولن ينتقل إلى الخادم الإنتاجي.

\n\n

الطريقة 2: أرشيف PHAR

\n\n

إذا لم يكن Comporter خيارك المناسب، يمكنك تنزيل PHPUnit كملف واحد:

\n\n
wget https://phar.phpunit.de/phpunit.phar\nchmod +x phpunit.phar\nsudo mv phpunit.phar /usr/local/bin/phpunit
\n\n

بعد ذلك، يجب أن يعرض الأمر phpunit --version الإصدار.

\n\n

أول اختبار: نكتبه ونشغله

\n\n

الآن الجزء الممتع. لننشئ كلاسًا بسيطًا ونكتب له اختبارًا. لنفترض أن لدينا دالة تجمع رقمين.

\n\n

الخطوة 1: الكود المراد اختباره

\n\n

أنشئ ملف src/Calculator.php:

\n\n
<?php\n\nnamespace App;\n\nclass Calculator\n{\n    public function add(float $a, float $b): float\n    {\n        return $a + $b;\n    }\n}
\n\n

الخطوة 2: اختبار لهذا الكلاس

\n\n

PHPUnit يتبع اتفاقية: تُخزَّن الاختبارات في مجلد tests/، واسم ملف الاختبار يطابق اسم الكلاس مع اللاحقة Test. أنشئ tests/CalculatorTest.php:

\n\n
<?php\n\nnamespace Tests;\n\nuse App\\Calculator;\nuse PHPUnit\\Framework\\TestCase;\n\nclass CalculatorTest extends TestCase\n{\n    public function testAdd()\n    {\n        $calculator = new Calculator();\n        $result = $calculator->add(2, 3);\n        $this->assertEquals(5, $result);\n    }\n}
\n\n

ماذا يحدث هنا؟

\n
    \n
  • نحن نرث من TestCase — الكلاس الأساسي لـ PHPUnit.
  • \n
  • الطريقة testAdd هي اختبارنا. PHPUnit يشغل تلقائيًا جميع الطرق التي تبدأ بـ test.
  • \n
  • $this->assertEquals() هو assert (تأكيد). يتحقق من أن النتيجة تساوي القيمة المتوقعة.

المدونات

توصيات الكتب