ตัวช่วยสร้างวัตถุจำลอง 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 ที่มีอยู่:
$ 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