Curso Laravel UnitTest - Métodos de aserción imprescindibles
En esta entrada, te ejemplifico los métodos de aserción más importantes que debemos de tener en cuenta al momento de implementar las pruebas unitarias o de integración en Laravel.
assertStatus y assertOk
Este son los primeros métodos de aserción que veremos los imprescindibles que debemos de usar como primeros al momento de evaluar las pruebas, sería aquí el de hacer assertStatus() o el de assertOk(), que serían equivalente si a assertStatus(200); 200 corresponde al código http devuelto en una petición normalita como la que tenemos acá si cargamos esta página esta por defecto nos devuelve 200 ya que es el código empleado por defecto para indicar que todo está Ok:
$response = $this->get(route('blog.show', ['post'=> $post]))
->assertOk()
// ->assertStatus(200)
assertSee
Otro método de aserción imprescindible sería el de assertSee, que nos indica que es lo que está viendo en la vista simplemente le pasamos un texto y ese texto tiene que estar en la vista en este caso esta sería una prueba para la de detalle, entonces sería esta belleza que tenemos aquí título del post la categoría y el contenido entonces obtenemos el post que lo generamos con sus dependencias y por aquí con el post lo buscamos y buscamos que tenga el título tenga el contenido y obviamente aquí la categoría y bueno para eso funciona el assertSee:
$response = $this->get(route('category.index'))
->assertOk()
->assertViewIs('dashboard.category.index')
->assertSee('Category')
AssertViewHas
Otro método de aserción imprescindible que lo tenemos que emplear para cuando estamos trabajando con contr controladores que devuelven una pista sería el de aserción, en el cual le podemos indicar el nombre del parámetro y también por aquí le indicamos qué es lo que tiene que tener ese parámetro en este caso el parámetro llamado post en plural tiene que tener una paginación de solamente dos niveles, entonces, es lo que tú puedes ver por acá que es lo que estamos devolviendo entonces para eso funciona el método de aserción llamado AssertViewHas:
$this->get(route('permission.create'))
->assertOk()
->assertSee('Dashboard')
->assertSee('Name')
->assertSee('Send')
->assertViewHas('permission', new Permission());
Test Driven Development (TDD)
Hay una técnica de programación llamada TDD, que proviene de las siglas en inglés Test-Driven Development. Aquí te muestro un fragmento de mi libro donde hablo sobre esta técnica. En pocas palabras, TDD nos dice que deberíamos implementar primero las pruebas, es decir, este archivito que ves aquí (ya sean pruebas de integración o pruebas unitarias), antes de desarrollar las funcionalidades de nuestra aplicación.
Por ejemplo, supongamos que estamos desarrollando esta funcionalidad del blog, que muestra un listado y el detalle de una publicación. Aplicar TDD aquí tiene bastante sentido, ya que con las pruebas:
No solo verificamos y garantizamos que la aplicación funcione correctamente (al menos para los casos que hemos probado).
Sino que también establecemos reglas claras que nuestra aplicación debe seguir.
Acepto recibir anuncios de interes sobre este Blog.
En esta entrada, te ejemplifico los métodos de aserción más importantes que debemos de tener en cuenta al momento de implementar las pruebas unitarias o de integración en Laravel.
- Andrés Cruz