مساعدين لبناء PHPUnit كائنات وهمية بسهولة.
هذه المكتبة ليست مكتبة ساخرة. إنه مجرد عدد قليل من المساعدين لكتابة المحاكاة الأكثر شيوعًا بسهولة أكبر.
إنه لا يعيد اختراع أي شيء وليس المقصود منه تغطية كل حالات الاستخدام: الحالات الأكثر شيوعًا فقط.
$ composer require --dev mnapoli/phpunit-easymock
لتتمكن من استخدام EasyMock في اختباراتك ، يجب عليك تضمين السمة في صفك :
class MyTest extends PHPUnit Framework TestCase
{
use EasyMock EasyMock;
/ / ...
}
إليك ما يبدو عليه نموذج PHPUnit الشائع جدًا:
$ mock = $ this -> createMock ( ' MyClass ' );
$ mock -> expect ( $ this -> any ())
-> method ( ' sayHello ' )
-> willReturn ( ' Hello ' );
مقرف!
إليك كيفية كتابتها باستخدام EasyMock:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
ماذا لو كنت تريد التأكد من أن الطريقة يتم استدعاؤها مرة واحدة (على سبيل المثال $mock->expect($this->once())
)؟ استخدم spy()
بدلاً من ذلك:
$ mock = $ this -> easySpy ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
يمكنك الاستهزاء بالطرق بحيث تقوم بإرجاع القيم:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
أو حتى يستخدمون رد الاتصال:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => function ( $ name ) {
return ' Hello ' . $ name ;
},
]);
يمكنك أيضًا الحصول على أساليب لطرح الاستثناءات من خلال توفير نسخة Exception
:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => new RuntimeException ( ' Whoops ' ),
]);
من الممكن استدعاء الأسلوب mock()
مرة أخرى على نموذج موجود:
$ mock = $ this -> easyMock ( ' MyClass ' );
$ mock = $ this -> easyMock ( $ mock , [
' sayHello ' => ' Hello ' ,
]);
إذا كنت تريد استخدام التأكيدات أو ميزات PHPUnit الأخرى، فما عليك سوى القيام بذلك:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' hello ' ,
]);
$ mock -> expects ( $ this -> once ())
-> method ( ' sayGoodbye ' )
-> willReturn ( ' Goodbye ' );
المحاكاة هي عبارة عن محاكاة لـ PHPUnit، ولا يوجد شيء مميز هنا.
انظر ملف المساهمة.
تم إصداره بموجب ترخيص MIT.