مقدمة إلى اختبارات Laravel: استخدام PHPUnit و Laravel Dusk

Amine
30/08/2024

المقدمة

الاختبارات هي جزء أساسي من تطوير البرمجيات لضمان استقرار وجودة التطبيقات. يوفر Laravel أدوات قوية لإجراء اختبارات مختلفة تشمل اختبارات الوحدة (Unit Testing) واختبارات المتصفح (Browser Testing). باستخدام PHPUnit، يمكنك كتابة اختبارات لوحدات التطبيق الفردية، بينما يتيح لك Laravel Dusk كتابة اختبارات متقدمة للواجهة الأمامية للتأكد من أن التطبيق يعمل كما هو متوقع في المتصفح.

الخطوة 1: إعداد بيئة الاختبار باستخدام PHPUnit

يأتي Laravel مثبتًا مسبقًا مع PHPUnit، وهي مكتبة اختبار قوية لـ PHP. للتحقق من أن PHPUnit مثبت بشكل صحيح، يمكنك تشغيل الأمر التالي في سطر الأوامر:

php artisan test

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

الخطوة 2: كتابة اختبارات الوحدة باستخدام PHPUnit

لنبدأ بكتابة اختبار وحدة بسيط للتحقق من وظائف تطبيقك الأساسية. يمكنك إنشاء اختبار جديد باستخدام الأمر التالي:

php artisan make:test ExampleTest

سيتم إنشاء ملف ExampleTest.php في مجلد tests/Feature. افتح هذا الملف وأضف اختبارًا بسيطًا للتحقق من تحميل الصفحة الرئيسية بشكل صحيح:

<?php

namespace Tests\Feature;

use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;

class ExampleTest extends TestCase
{
    /** @test */
    public function the_homepage_is_accessible()
    {
        $response = $this->get('/');

        $response->assertStatus(200);
    }
}

هذا الاختبار يتحقق من أن الصفحة الرئيسية يمكن الوصول إليها وتعود بحالة HTTP 200. يمكنك تشغيل الاختبار باستخدام الأمر php artisan test:

php artisan test

الخطوة 3: إعداد Laravel Dusk لاختبارات المتصفح

Laravel Dusk هو إطار عمل لاختبار المتصفح الذي يوفر واجهة برمجة بسيطة لاختبار التطبيقات باستخدام واجهة المستخدم (UI). لاستخدام Laravel Dusk، عليك أولاً تثبيته باستخدام Composer:

composer require --dev laravel/dusk

بعد تثبيت Dusk، تحتاج إلى إعداد بيئة Dusk باستخدام الأمر التالي:

php artisan dusk:install

سيقوم هذا الأمر بإنشاء المجلدات والملفات الضرورية لـ Dusk، بما في ذلك مجلد tests/Browser حيث سيتم تخزين اختبارات المتصفح.

الخطوة 4: كتابة اختبار متصفح باستخدام Laravel Dusk

لنقم بكتابة اختبار متصفح بسيط للتحقق من أن المستخدم يمكنه رؤية العنوان الصحيح على الصفحة الرئيسية. يمكنك إنشاء اختبار جديد باستخدام الأمر التالي:

php artisan dusk:make HomePageTest

سيتم إنشاء ملف HomePageTest.php في مجلد tests/Browser. افتح هذا الملف وأضف اختبارًا للتحقق من أن العنوان موجود على الصفحة الرئيسية:

<?php

namespace Tests\Browser;

use Laravel\Dusk\Browser;
use Tests\DuskTestCase;

class HomePageTest extends DuskTestCase
{
    /** @test */
    public function it_displays_the_homepage_title()
    {
        $this->browse(function (Browser $browser) {
            $browser->visit('/')
                    ->assertSee('Laravel');
        });
    }
}

هذا الاختبار يستخدم Dusk لفتح المتصفح، زيارة الصفحة الرئيسية، والتحقق من وجود نص “Laravel” على الصفحة. لتشغيل اختبارات Dusk، استخدم الأمر:

php artisan dusk

الخطوة 5: تحسين اختبارات Laravel Dusk

يمكنك تحسين اختبارات Dusk الخاصة بك باستخدام الميزات المتقدمة مثل تحديد عناصر واجهة المستخدم (UI Elements) واستخدام مكونات الصفحة (Page Components). يمكن أن تساعدك هذه الميزات في تنظيم اختباراتك وجعلها أكثر قابلية للصيانة. على سبيل المثال، لنقم بإنشاء مكون صفحة (Page Component) للتحقق من وجود عنوان الصفحة الرئيسية:

php artisan dusk:page HomePage

سيتم إنشاء ملف HomePage.php في مجلد tests/Browser/Pages. يمكنك تعديل الملف لتعريف العناصر والتفاعل معها بشكل أفضل:

<?php

namespace Tests\Browser\Pages;

use Laravel\Dusk\Browser;
use Laravel\Dusk\Page as BasePage;

class HomePage extends BasePage
{
    public function url()
    {
        return '/';
    }

    public function assert(Browser $browser)
    {
        $browser->assertSee('Laravel');
    }

    public function elements()
    {
        return [
            '@title' => 'h1'
        ];
    }
}

الآن، يمكنك استخدام مكون الصفحة في اختبارات Dusk الخاصة بك:

use Tests\Browser\Pages\HomePage;

class HomePageTest extends DuskTestCase
{
    /** @test */
    public function it_displays_the_homepage_title()
    {
        $this->browse(function (Browser $browser) {
            $browser->visit(new HomePage)
                    ->assertSee('Laravel');
        });
    }
}

هذا الاستخدام لمكونات الصفحة يجعل اختبارات Dusk أكثر نظافة وأسهل في الصيانة.

الخاتمة

يعد الاختبار جزءًا حيويًا من تطوير البرمجيات الحديثة، وLaravel يوفر أدوات قوية ومرنة لتسهيل هذه العملية. سواء كنت تقوم بكتابة اختبارات الوحدة باستخدام PHPUnit أو اختبارات المتصفح باستخدام Laravel Dusk، يمكنك التأكد من أن تطبيقك يعمل بشكل صحيح ويلبي توقعات المستخدم. استمر في استكشاف ميزات Laravel المختلفة لتحسين جودة واستقرار تطبيقاتك.

لمزيد من المعلومات، يمكنك زيارة المستندات الرسمية للارافيل.

التعليقات

اترك تعليقاً