Mock de Requests usando Guzzle, en Laravel
Un problema puntual que tuve recientemente en un proyecto es la necesidad de testear que un controller de Laravel realizara algunos requests HTTP.
Para poder llevar esto adelante tuve que construir una solución, combinando información que encontré en distintas partes.
// mocks http client and responses
$this->mock(\GuzzleHttp\Client::class, function ($mock) {
$mock->shouldReceive('post')
->andReturn([
new \GuzzleHttp\Psr7\Response(200, [], '{status: "ok"}'),
])
->once();
});
Referencias:
- Laravel mocking documentation: https://laravel.com/docs/6.x/mocking#mocking-objects
- Mockery quick reference: http://docs.mockery.io/en/latest/getting_started/quick_reference.html
- Guzzle mocking documentation: https://guzzle.readthedocs.io/en/latest/testing.html
- Stack Overflow (old) response: https://stackoverflow.com/questions/33162281/unit-testing-guzzle-inside-of-laravel-controller-with-phpunit
Este post es sólo una nota/recordatorio para que mi yo del futuro no se tenga que enfrentar con el mismo problema otra vez. 🧐
Cargando Comentarios
Error
Hubo un error cargando los comentarios.
No hay comentarios
Podés ser la primera persona en dejar un comentario.
Agregar Comentario
Tu dirección de email no será publicada. Los comentarios son revisados de forma manual antes de ser publicados.
Enviando
Gracias por enviar tu comentario
Si todo funciona bien pronto estará visible en el sitio.
Error
Hubo un error con el envío del comentario. Deberías volver a intentarlo.