Helfer zum einfachen Erstellen von PHPUnit-Mock-Objekten.
Diese Bibliothek ist keine Spottbibliothek. Es sind nur ein paar Hilfsmittel, um die gängigsten Mocks einfacher zu schreiben.
Es erfindet nichts neu und soll nicht jeden Anwendungsfall abdecken, sondern nur die häufigsten.
$ composer require --dev mnapoli/phpunit-easymock
Um EasyMock in Ihren Tests verwenden zu können , müssen Sie das Merkmal in Ihre Klasse aufnehmen :
class MyTest extends PHPUnit Framework TestCase
{
use EasyMock EasyMock;
/ / ...
}
So sieht ein sehr verbreiteter PHPUnit-Mock aus:
$ mock = $ this -> createMock ( ' MyClass ' );
$ mock -> expect ( $ this -> any ())
-> method ( ' sayHello ' )
-> willReturn ( ' Hello ' );
Igitt!
So schreiben Sie es mit EasyMock:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
Was ist, wenn Sie sicherstellen möchten, dass die Methode einmal aufgerufen wird (z. B. $mock->expect($this->once())
)? Verwenden Sie stattdessen spy()
:
$ mock = $ this -> easySpy ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
Sie können Methoden verspotten, sodass sie Werte zurückgeben:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
Oder damit sie einen Rückruf verwenden:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => function ( $ name ) {
return ' Hello ' . $ name ;
},
]);
Sie können Methoden auch Ausnahmen auslösen lassen, indem Sie eine Exception
bereitstellen:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => new RuntimeException ( ' Whoops ' ),
]);
Es ist möglich, die Methode mock()
für einen vorhandenen Mock erneut aufzurufen:
$ mock = $ this -> easyMock ( ' MyClass ' );
$ mock = $ this -> easyMock ( $ mock , [
' sayHello ' => ' Hello ' ,
]);
Wenn Sie Assertions oder andere PHPUnit-Funktionen verwenden möchten, tun Sie es einfach:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' hello ' ,
]);
$ mock -> expects ( $ this -> once ())
-> method ( ' sayGoodbye ' )
-> willReturn ( ' Goodbye ' );
Mocks sind einfache PHPUnit-Mocks, hier nichts Besonderes.
Siehe die CONTRIBUTING-Datei.
Veröffentlicht unter der MIT-Lizenz.