I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+20 115 052 9992

Website

https://ibrahimahmed.online/

Social Links

ازاي تخلي كتابة الاختبارات (Testing) ممتعة بـ Pest PHP في لارافيل؟

ازاي تخلي كتابة الاختبارات (Testing) ممتعة بـ Pest PHP في لارافيل؟ بص يا سيدي، كلنا كـ مبرمجين لارافيل (Laravel Developers) بنحب نكتب كود نضيف ومحمي، بس لما بنو

ازاي تخلي كتابة الاختبارات (Testing) ممتعة بـ Pest PHP في لارافيل؟
Reading Count: 3

ازاي تخلي كتابة الاختبارات (Testing) ممتعة بـ Pest PHP في لارافيل؟

بص يا سيدي، كلنا كـ مبرمجين لارافيل (Laravel Developers) بنحب نكتب كود نضيف ومحمي، بس لما بنوصل لمرحلة كتابة الاختبارات (Tests) باستخدام PHPUnit التقليدي، الموضوع بيتحول لـ "واجب مدرسي" تقيل على القلب. كود كتير، تكرار، syntax بيحسسك إنك بتكتب جافا في التسعينات! هنا بقى بييجي دور Pest PHP عشان يغير قواعد اللعبة ويخلي الاختبارات مش بس سهلة، دي كمان ممتعة.

يعني إيه Pest وليه المطورين بيسيبوا PHPUnit عشانه؟

باختصار، Pest هو إطار عمل لاختبارات الـ PHP (Testing Framework) مبني فوق أكتاف العملاق PHPUnit. يعني هو مش بيستبدله، هو بيغلفه بـ syntax جديد وشيك يخليك تكتب اختباراتك كأنك بتكتب جمل باللغة الإنجليزية. المطورين بيهاجروا لـ Pest عشان تلات أسباب رئيسية:

  • الجمالية (Readability): الكود بيبقى واضح وقريب جداً من لغة البشر.
  • السرعة (Developer Experience): بتكتب كود أقل بنسبة 50% تقريباً عن الـ PHPUnit.
  • التكامل (Integration): بيشتغل مع لارافيل (Laravel) كأنه جزء أصيل منه.

ازاي تبدأ وتكتب أول اختبار ليك؟

تثبيت Pest في مشروع لارافيل زي شربة المية. افتح الـ Terminal بتاعك واكتب الأمر ده:

composer require pestphp/pest pestphp/pest-plugin-laravel --dev php artisan pest:install

دلوقتي بدل ما تكتب كلاسات طويلة وmethods معقدة، شوف الفرق الجوهري في كتابة اختبار بسيط:

في PHPUnit القديم كنت بتكتب كده:

public function test_basic_example()
{
    $this->assertTrue(true);
}

في Pest الموضوع بقى أبسط بكتير:

test('basic example', function () {
    expect(true)->toBeTrue();
});

قوة التوقعات (Expectations API) في Pest

من أجمل مميزات Pest هي الـ Expectations API. بدلاً من استخدام الـ Assertions التقليدية اللي بتحسسك إنك بتتعامل مع لغة برمجة صعبة، Pest بيوفرلك طريقة "طبيعية" أكتر للتأكد من النتائج. شوف المثال ده:

// في PHPUnit القديم
$this->assertEquals(200, $response->status());

// في Pest الجديد
expect($response->status())->toBe(200);

تخيل بقى تقدر تشبك التوقعات ببعض (Chaining) زي ما بتعمل في Eloquent بالظبط، ده بيخلي الكود مقروء جداً وواضح لأي حد هييجي يراجع وراك.

استخدام ميزات لارافيل (Feature Tests) بسهولة

لو بتعمل اختبارات للـ API أو الـ Routes، هتلاقي Pest بيسهل عليك التعامل مع الـ HTTP Requests. الموضوع مريح جداً وبيديك تحكم كامل في الـ Assertions اللي اتعودت عليها في لارافيل، بس في قالب أنضف بكتير.

it('has a welcome page', function () {
    $this->get('/')
         ->assertStatus(200)
         ->assertSee('Laravel');
});

نصيحة من أخ لمبرمج زيه

يا صديقي، الاختبارات (Testing) مش رفاهية، دي هي الضمان الوحيد إن مشروعك يفضل "واقف على رجله" لما تعمل تحديثات أو تضيف ميزات جديدة. Pest خلى الحاجة اللي كنا بنهرب منها هي أكتر حاجة ممكن تستمتع بيها وأنت بتكتبها. ابدأ صغير، جرب تحول ملف اختبار واحد من مشروعك لـ Pest، وهتلاقي نفسك تلقائياً بتمسح الـ PHPUnit من باقي المشروع.

اتعلم دايماً تقرأ الـ Documentation الرسمي، وجرب بنفسك، لأن البرمجة "ممارسة" مش مجرد قراءة. بالتوفيق في رحلتك البرمجية!


Share

Related posts

Jul 18, 2026 • 1 min read
Reading Count: 2
إزاي تبني نظام بوابات دفع (Payment Gateways) احترافي باستخدام مكتبة Saloon في PHP

إزاي تبني نظام بوابات دفع (Payment Gateways) احترافي باستخدام مكتبة Saloon في PHP لو أنت مبرمج PHP ب...

Jul 17, 2026 • 1 min read
Reading Count: 6
إزاي تبقى Instructor تقني شاطر وتوصل المعلومة لأي مبرمج جديد

إزاي تبقى Instructor تقني شاطر وتوصل المعلومة لأي مبرمج جديد بص يا سيدي، كلنا مرينا باللحظة دي. بتكو...

Jul 17, 2026 • 1 min read
Reading Count: 6
إزاي تبني لوحة تحكم (Admin Panel) احترافية لشركات الأثاث الفاخر باستخدام Filament PHP

إزاي تبني لوحة تحكم (Admin Panel) احترافية لشركات الأثاث الفاخر باستخدام Filament PHP تخيل إنك داخل...