Laravel 5.4 #25 : Tests

Hoy vamos a crear unos tests con Laravel y veremos como funcionan y que son.

Un test es código que comprueba que un trozo de nuestro código funcione correctamente y haga lo que debe hacer. En Laravel hay dos tipos, los test Unitarios que están dirigidos a comprobar la funcionalidad de una parte pequeña de nuestro código (métodos) y también están los test Feature que serán los que utilizaremos en esta entrada y que comprueban una parte más grande de nuestro código (cosas con base de datos, peticiones HTTP, etc.).

Para crear el fichero para nuestro test, como siempre, artisan nos provee un comando para hacerlo:

Ok, ahora ya tenemos el fichero creado, pero antes de añadir el código vamos a hacer unas cuantas configuraciones necesarias.

 

Primero de todo, vamos al archivo phpunit.xml  (está en la raíz del proyecto) y añadimos al final del fichero estas líneas:

Con estas líneas indicamos que utilizaremos una base de datos SQLite para realizar los tests.

Ahora tendremos que instalar un paquete para poder utilizar este tipo de base de datos, si no nos dará un error:

Y actualizamos los paquetes:

 

Ahora ya vamos a añadir el código al archivo del test creado anteriormente ( PostTest.php ):

Hay dos funciones:

  • La primera (test_posts_can_be_created) comprueba que los posts pueden ser creados por un usuario. Una vez creado un post de prueba, comprueba si existe en la base de datos.
  • La segunda (post_cant_be_created_by_unlogged_user) comprueba que un usuario no logueado no puede entrar a la ruta de creación de posts. Para que funcione bien, tendremos que comentar el middleware auth del método store en el PostsController.php , ya que si no retorna otro error HTTP y queremos que retorne el error 403.

Para ejecutar estos tests, simplemente vamos a la raíz del proyecto y ejecutamos:

Y si queremos ejecutar un fichero en concreto, en mi caso sería:

Y veremos por la consola que los test son positivos:

 

Esto es simplemente un ejemplo, los test que se pueden hacer pueden ser infinitos. Puedes encontrar más información sobre los tests en la documentación de Laravel.

-

– https://laravel.com/docs/5.4/testing

– https://laravel.com/docs/5.4/http-tests

– https://laravel.com/docs/5.4/database-testing


Aloja tu proyecto en DigitalOcean: Obtén $50 de crédito gratis al registrarte a través de este enlace.

Si hay cualquier tipo de error en el post o te surge cualquier duda, no dudes en ponerlo en los comentarios o enviarme un correo desde la página de contacto.

💬 CONTACTAR

Deja un comentario

  Acepto la política de privacidad