انتقل إلى محتوى الدرس

Resetting State with RefreshDatabase تهيئة القاعدة بسمة RefreshDatabase

إعادة تهيئة قاعدة بيانات الاختبار تلقائياً بسمة RefreshDatabase والتحقق من السجلات واستجابات JSON API وفق أحدث معايير إطار العمل Laravel 12 مع أمثلة وتطبيقات عملية متدرجة.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يجب ألا تترك الاختبارات المعتمدة على قاعدة البيانات أي سجلات متبقية تلوث الاختبارات التالية أو تسبب نتائج غير مستقرة. يتيح تضمين السمة RefreshDatabase داخل كلاس الاختبار تشغيل التهجيرات مرة واحدة وتغليف كل دالة اختبار داخل معاملة قاعدة بيانات يتم التراجع عنها تلقائياً فور انتهاء الدالة.

  • منع تلوث البيانات (Zero Test Pollution): تبدأ كل دالة اختبار بقاعدة بيانات فارغة ومُهجرة بالكامل دون أي أثر من الاختبارات السابقة.
  • سرعة التراجع عن المعاملة (Transaction Speed): بدلاً من هدم الجداول وإعادة بنائها في كل مرة، يتراجع RefreshDatabase عن المعاملة في أجزاء من الثانية.
  • التوافق مع الذاكرة (In-Memory Compatibility): يعمل بكفاءة عالية مع قواعد SQLite في الذاكرة أو قواعد بيانات الاختبار المستقلة.
مخطط معماري يوضح اختبار قواعد البيانات وتوكيدات واجهات API في Laravel في إطار العمل Laravel 12
PHP
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;

class PostDatabaseTest extends TestCase {
    use RefreshDatabase;
}