ما هو Mockery؟

فبراير 16, 2025

Mockery هي مكتبة PHP قوية، تُستخدم عادةً في اختبار البرمجيات لمحاكاة سلوك الكائنات. تسمح بعزل الشيفرة التي يتم اختبارها عن التبعيات الخارجية، مما يجعل اختبار الوحدة أسهل وأكثر موثوقية.

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

يحل Mockery هذه المشكلة من خلال السماح للمبرمجين بمحاكاة سلوك المكونات التابعة. بدلاً من استدعاء واجهة برمجة التطبيقات الخارجية الفعلية، يمكننا استخدام Mockery لإنشاء “كائن وهمي” يحاكي واجهة برمجة التطبيقات هذه. سيعيد كائن المحاكاة هذا القيم المحددة مسبقًا، مما يجعل الاختبار مستقلًا ويمكن التنبؤ به.

يوفر استخدام Mockery العديد من الفوائد لعملية الاختبار:

  • التحكم في سلوك التبعيات: يسمح Mockery بتحديد سلوك الكائنات التابعة بدقة، مما يساعد على اختبار حالات محددة بسهولة.
  • عزل الاختبار: يساعد Mockery على عزل الشيفرة التي يتم اختبارها عن المكونات الخارجية، مما يضمن استقلالية الاختبار.
  • تسريع الاختبار: يساعد Mockery على تقليل وقت تنفيذ الاختبار عن طريق إزالة المهام التي تستغرق وقتًا طويلاً مثل استدعاء واجهة برمجة التطبيقات الخارجية أو الاستعلام عن قاعدة البيانات.
  • تحسين تغطية الاختبار: يسمح Mockery باختبار الحالات الصعبة أو المستحيلة عن طريق استخدام الكائنات الحقيقية.

استخدام Mockery بسيط جدًا. أولاً، تحتاج إلى تثبيت المكتبة من خلال Composer:

{
 "require-dev": {
 "mockery/mockery": "1.0.0-alpha1@dev"
 }
}

بعد ذلك، يمكنك استخدام Mockery لمحاكاة فئة أو طريقة معينة:

// محاكاة فئة كاملة
$mock = Mockery::mock('path-to-mock-class');

// محاكاة طريقة معينة
$mock = Mockery::mock('path-to-mock-class[method]'); 

يوفر Mockery العديد من الخيارات لتحديد سلوك كائن المحاكاة:

// تحديد عدد مرات استدعاء الطريقة
$mock->shouldReceive('methodName')->times(3);

// تحديد معلمات الإدخال
$mock->shouldReceive('methodName')->with($arg1, $arg2);

// تحديد قيمة الإرجاع
$mock->shouldReceive('methodName')->andReturn($value);

باختصار، Mockery هو أداة مفيدة لاختبار البرمجيات، مما يجعل اختبار الشيفرة أسهل وأسرع وأكثر موثوقية. يساعد استخدام Mockery المبرمجين على التركيز على منطق الشيفرة التي يتم اختبارها دون التأثر بالعوامل الخارجية.

Leave A Comment

تصنيفات

Recent Posts

Create your account