تكرار السؤال: …
الإجابة المختصرة
تستخدم دوال مثل $this->getJson() أو postJson()، وتفحص النتيجة بتوكيدات مخصصة مثل assertStatus(200) و assertJsonPath() و assertJsonValidationErrors().
الشرح
يوفر Laravel بيئة اختبار مدمجة تحاكي طلبات HTTP كاملة دون الحاجة لتشغيل خادم خارجي. تتيح توكيدات الـ JSON التحقق الدقيق من أجزاء الاستجابة، مثل التحقق من مطابقة الحقول، وعدم تسريب معلومات غير مطلوبة عبر assertJsonMissing()، والتأكد من إطلاق الأخطاء المناسبة عند إرسال بيانات مشوهة.
مثال بالكود
public function test_can_create_user(): void {
$response = $this->postJson('/api/users', [
'name' => 'Sara',
'email' => '[email protected]'
]);
$response->assertStatus(201)
->assertJsonPath('data.name', 'Sara');
}أخطاء شائعة
- استخدام $this->post() بدلاً من $this->postJson() عند اختبار واجهات الـ API مما يمنع Laravel من معاملة الطلب كـ JSON.