1. مبتدئ

    ما هو إطار عمل Pest PHP ولماذا أصبح الخيار المفضل لاختبارات Laravel الحديثة على حساب PHPUnit؟

    Pest هو إطار اختبارات أنيق مبني فوق PHPUnit يوفر صياغة وظيفية موجزة (Expectation API)، وقراءة بديهية جداً للأخطاء، مع الحفاظ على التوافق التام مع ميزات واختبارات PHPUnit.

    اقرأ الشرح الكامل
  2. مبتدئ

    كيف تكتب اختبارات Feature متكاملة لنقاط نهاية الـ API بـ Laravel وتتحقق من استجابة JSON؟

    تستخدم دوال مثل $this->getJson() أو postJson()، وتفحص النتيجة بتوكيدات مخصصة مثل assertStatus(200) و assertJsonPath() و assertJsonValidationErrors().

    اقرأ الشرح الكامل
  3. متوسط

    ما الفرق بين سمة RefreshDatabase و DatabaseTransactions في اختبارات Laravel؟

    RefreshDatabase تطبق كل الـ migrations مرة واحدة وتعزل كل اختبار في معاملة ذرية تُلغى عند النهاية، بينما DatabaseTransactions تلف الاختبار في معاملة فقط وتتطلب قاعدة بيانات جاهزة مسبقاً.

    اقرأ الشرح الكامل
  4. مبتدئ

    كيف تسهل مصانع النماذج (Model Factories) ومكتبة Faker تجهيز بيانات الاختبار؟

    تنشئ سجلات نماذج وهمية ولكنها متناسقة ومطابقة لقواعد البيانات عبر User::factory()->create() مع إمكانية تعديل خصائص محددة وتوليد حالات جاهزة (States).

    اقرأ الشرح الكامل
  5. متوسط

    كيف تستبدل الخدمات والـ Facades بنسخ وهمية (Mocks) في اختبارات Laravel دون كسر النظام؟

    باستخدام دوال المحاكاة المدمجة مثل Event::fake() أو Queue::fake() أو Mail::fake()، وتوكيد الإرسال بـ Mail::assertSent().

    اقرأ الشرح الكامل
  6. متوسط

    كيف تتحكم في توقيت النظام وتجميد الوقت في اختبارات Laravel الحساسة للمهل الزمنية؟

    باستخدام دوال التلاعب بالزمن المدمجة مثل $this->travel(5)->days() أو $this->freezeTime() واختبار انتهاء الصلاحيات بدقة متناهية.

    اقرأ الشرح الكامل
  7. متوسط

    كيف تعمل الإشعارات متعددة القنوات (Notifications) في Laravel وكيف تختبرها بـ Notification::fake()؟

    تسمح بإرسال إشعار موحد عبر قنوات متعددة (mail, database, sms, broadcast) عبر دالة via()، وتختبر باستخدام Notification::fake().

    اقرأ الشرح الكامل
  8. متوسط

    كيف تختبر الـ Jobs والـ Events والبريد في Laravel باستخدام الـ fakes (Queue::fake و Event::fake و Mail::fake)؟

    تستبدل الـ fakes التنفيذ الفعلي بسجل يحفظ ما أُرسل، فتتحقق بعد استدعاء الكود من أن المهمة أو الحدث أو الرسالة أُرسلت بالمعاملات الصحيحة دون تشغيلها فعليًا.

    اقرأ الشرح الكامل
  9. متوسط

    كيف تختبر المصادقة والتفويض (actingAs و Gates و Policies) في تطبيقات Laravel؟

    تُحاكي المستخدم الحالي بـ actingAs وتتحقق من أكواد الاستجابة (401 لغير المسجل، 403 لغير المصرّح، 200 للمالك)، وتختبر الـ Policies مباشرة عبر Gate::forUser أو $user->can.

    اقرأ الشرح الكامل
  10. متوسط

    كيف تختبر الكود الذي يستدعي واجهات خارجية باستخدام Http::fake ومنع الطلبات الحقيقية؟

    يعترض Http::fake طلبات عميل HTTP ويعيد استجابات معدّة مسبقًا حسب النمط، ويمنع Http::preventStrayRequests() أي طلب غير مُحاكى من الوصول إلى الشبكة الحقيقية.

    اقرأ الشرح الكامل