مقدمة إلى اختبارات Laravel: استخدام PHPUnit و Laravel Dusk
المقدمة
الاختبارات هي جزء أساسي من تطوير البرمجيات لضمان استقرار وجودة التطبيقات. يوفر 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 المختلفة لتحسين جودة واستقرار تطبيقاتك.
لمزيد من المعلومات، يمكنك زيارة المستندات الرسمية للارافيل.
اترك تعليقاً