الاختبارات الآتية (Automated Testing) باستخدام Pest و PHPUnit
يعتبر المبرمج المحترف هو من يثق في أكواده ليس بالحدس، بل بالأدلة الرقمية. يوفر Laravel بيئة اختبار متكاملة تتيح لك كتابة سيناريوهات (مثل: مستخدم يسجل دخوله ويضيف مقالاً) ثم تشغيلها تلقائياً. إذا قمت مستقبلاً بتعديل الكود وأدى ذلك لخلل، ستقوم الاختبارات بتنبيهك فوراً. مع Laravel 11، أصبح Pest هو الخيار الحديث والأكثر بساطة لكتابة هذه الاختبارات.
1. أنواع الاختبارات
يدعم لارافيل نوعين أساسيين من الاختبارات:
- Unit Tests: لاختبار أجزاء صغيرة جداً ومعزولة من الكود (مثل وظيفة حسابية بسيطة).
- Feature Tests: لاختبار ميزة كاملة في الموقع (مثل عملية شراء من المتجر) والتأكد من استلام الروابط والردود الصحيحة.
2. كتابة أول اختبار (Feature Test)
لإنشاء اختبار جديد يتأكد من أن الصفحة الرئيسية تعمل بشكل صحيح:
php artisan make:test ExampleTest
// باستخدام Pest (الافتراضي في Laravel 11)
it('returns a successful response', function () {
$response = $this->get('/');
$response->assertStatus(200);
});
3. تشغيل الاختبارات
كل ما عليك فعله لرؤية النتائج هو استخدام أمر اختبار Artisan السريع:
php artisan test
سيظهر لك شريط ملون؛ الأخضر يعني أن جميع الاختبارات نجحت، والأحمر يعني وجود خلل يجب إصلاحه.
أسئلة شائعة حول الاختبارات
ليس بالضرورة. الأفضل هو التركيز على الأجزاء الحساسة (مثل عمليات الدفع والحماية) بدلاً من محاولة تحقيق تغطية 100% لكل شيء، وهو ما يستهلك وقتاً ضخماً في التطوير.
الـ Mocking يتيح لك "محاكاة" خدمات خارجية (مثل إرسال رسائل SMS حقيقية) أثناء الاختبار لتجنب التكلفة وضياع الوقت، فتقوم بالتأكد فقط من أن الكود حاول الإرسال دون الإرسال فعلياً.
الدرس القادم
إدارة الأخطاء والسجلات
مهما كنت مبرمجاً ماهراً، ستحدث أخطاء. سنتعلم كيف نراقب الأخطاء ونفهم السجلات (Logs) لإصلاح المشاكل قبل أن يلاحظها المستخدم.
تعلم إدارة الأخطاء