Componentes para Laravel

En esta lección vamos a comenzar escribiendo una sencilla prueba unitaria con PHPUnit para comprobar que podemos crear una instancia de una nueva clase, invocar un método y obtener el resultado esperado.

Mira el código en GitHub: actual, resultado, comparación.

Escribiendo la primera prueba unitaria

Comencemos creando una clase de prueba FormTest:

En esta prueba comparamos que el método render imprima la cadena <form></form>.

Hay muchas consideraciones que no estoy tomando en cuenta en esta primera prueba; sin embargo, esto es suficiente para comenzar.

Ejecutemos la prueba y veámosla fallar:

1) Tests\FormTest::opens_a_form
Error: Class ‘Tests\Form’ not found

La clase Form no existe. Vamos a crearla en src/Form.php:

Y luego a importarla en FormTest:

Recuerda que se va a cargar automáticamente debido al autoloader como aprendimos en Autocarga de clases con Composer y PSR-4.

Re-ejecutemos la prueba:

1) Tests\FormTest::opens_a_form
Error: Call to undefined method Styde\Facades\Form::render()

El método render no existe. Vamos a declararlo en la clase Form:

Re-ejecutemos la prueba:

1) Tests\FormTest::opens_a_form
Failed asserting that null is identical to ‘<form></form>’.

Para que la prueba pase necesitamos retornar la cadena '<form></form>' desde el método render:

Al re-ejecutar la prueba la veremos pasar. En la próxima lección vamos a interactuar con Laravel a través de Testbench, retornando una vista en vez de una simple cadena de texto.

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Creación de una nueva librería para Laravel con Composer y PHPUnit Lección siguiente Realizando nuestra primera prueba con Orchestra Testbench