Ayudantes para construir objetos simulados PHPUnit fácilmente.
Esta biblioteca no es una biblioteca burlona. Son sólo unos pocos ayudantes para escribir los simulacros más comunes más fácilmente.
No reinventa nada y no pretende cubrir todos los casos de uso: sólo los más comunes.
$ composer require --dev mnapoli/phpunit-easymock
Para poder utilizar EasyMock en tus pruebas debes incluir el rasgo en tu clase :
class MyTest extends PHPUnit Framework TestCase
{
use EasyMock EasyMock;
/ / ...
}
Así es como se ve un simulacro de PHPUnit muy común:
$ mock = $ this -> createMock ( ' MyClass ' );
$ mock -> expect ( $ this -> any ())
-> method ( ' sayHello ' )
-> willReturn ( ' Hello ' );
¡Qué asco!
Aquí se explica cómo escribirlo con EasyMock:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
¿Qué sucede si desea afirmar que el método se llama una vez (es decir, $mock->expect($this->once())
)? Utilice spy()
en su lugar:
$ mock = $ this -> easySpy ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
Puedes simular métodos para que devuelvan valores:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' Hello ' ,
]);
O para que utilicen una devolución de llamada:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => function ( $ name ) {
return ' Hello ' . $ name ;
},
]);
También puede hacer que los métodos generen excepciones proporcionando una instancia Exception
:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => new RuntimeException ( ' Whoops ' ),
]);
Es posible volver a llamar al método mock()
en un simulacro existente:
$ mock = $ this -> easyMock ( ' MyClass ' );
$ mock = $ this -> easyMock ( $ mock , [
' sayHello ' => ' Hello ' ,
]);
Si desea utilizar afirmaciones u otras características de PHPUnit, simplemente hágalo:
$ mock = $ this -> easyMock ( ' MyClass ' , [
' sayHello ' => ' hello ' ,
]);
$ mock -> expects ( $ this -> once ())
-> method ( ' sayGoodbye ' )
-> willReturn ( ' Goodbye ' );
Los simulacros son simples simulacros de PHPUnit, nada especial aquí.
Ver el archivo CONTRIBUYENTE.
Publicado bajo la licencia MIT.