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: 78

ازاي تخلي كتابة الاختبارات (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

Sep 01, 2026 • 1 min read
Reading Count: 2
إزاي تبني واجهات مستخدم للجميع؟ دليل الـ Accessibility في React

إزاي تبني واجهات مستخدم للجميع؟ دليل الـ Accessibility في React يا هلا بيك يا بشمهندس! فكرت في مرة و...

Sep 01, 2026 • 1 min read
Reading Count: 4
ازاي تحلل أداء تطبيقات رياكت (React Performance) وتكتشف المشاكل باستخدام React Profiler

ازاي تحلل أداء تطبيقات رياكت (React Performance) وتكتشف المشاكل باستخدام React Profiler أهلاً بيك يا...

Aug 31, 2026 • 1 min read
Reading Count: 5
بناء نظام تسجيل دخول في Next.js باستخدام NextAuth.js

يا هلا بيك يا صديقي المبرمج في مقال جديد من سلسلة شروحات تطوير الويب (Web Development) وتحديداً عائل...