Pembantu untuk membuat objek tiruan PHPUnit dengan mudah.
Perpustakaan ini bukanlah perpustakaan yang mengejek. Itu hanya beberapa pembantu untuk menulis tiruan yang paling umum dengan lebih mudah.
Itu tidak menemukan kembali apa pun dan tidak dimaksudkan untuk mencakup setiap kasus penggunaan: hanya yang paling umum.
$ composer require --dev mnapoli/phpunit-easymock
Untuk dapat menggunakan EasyMock dalam pengujian Anda , Anda harus menyertakan sifat di kelas Anda :
class MyTest extends PHPUnit Framework TestCase
{
use EasyMock EasyMock;
/ / ...
}
Berikut tampilan tiruan PHPUnit yang sangat umum:
$ mock = $ this -> createMock ( ' MyClass ' );
$ mock -> expect ( $ this -> any ())
-> method ( ' sayHello ' )
-> willReturn ( ' Hello ' );
sial!
Berikut cara menulisnya dengan EasyMock:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
Bagaimana jika Anda ingin menegaskan bahwa metode ini dipanggil satu kali (yaitu $mock->expect($this->once())
)? Gunakan spy()
sebagai gantinya:
$ mock = $ this -> easySpy ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
Anda dapat meniru metode sehingga mengembalikan nilai:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
Atau agar mereka menggunakan panggilan balik:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => function ( $ name ) {
return ' Hello ' . $ name ;
},
]);
Anda juga dapat membuat metode mengeluarkan pengecualian dengan memberikan contoh Exception
:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => new RuntimeException ( ' Whoops ' ),
]);
Dimungkinkan untuk memanggil metode mock()
lagi pada tiruan yang sudah ada:
$ mock = $ this -> easyMock ( ' MyClass ' );
$ mock = $ this -> easyMock ( $ mock , [
' sayHello ' => ' Hello ' ,
]);
Jika Anda ingin menggunakan pernyataan atau fitur PHPUnit lainnya, lakukan saja:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' hello ' ,
]);
$ mock -> expects ( $ this -> once ())
-> method ( ' sayGoodbye ' )
-> willReturn ( ' Goodbye ' );
Mocks adalah tiruan PHPUnit biasa, tidak ada yang istimewa di sini.
Lihat file KONTRIBUSI.
Dirilis di bawah lisensi MIT.