Comparte:
Test: crear nuestro propio metodo json para agregar los headers
Que tal Jorge mucho gusto,
Tengo una duda, a que se debe que si realizo el return $this->json() entrara en un lup infinito sino que debo hacerlo al padre del json
Gracias de antemano por los detalles
Tengo una duda, a que se debe que si realizo el return $this->json() entrara en un lup infinito sino que debo hacerlo al padre del json
Gracias de antemano por los detalles
Tenemos el Trait MakesHttpRequests de Laravel
Este método es el que se utiliza para hacer peticiones en los TESTS, y este archivo viene con Laravel, así que no lo podemos editar.
Por este motivo creamos un nuevo Trait MakesJsonApiRequests
En la clase abstracta, TestCase estamos utilizando este Trait
Todos los tests de la carpeta Feature, se extienden a esta clase TestCase, por lo que heredan todos lo métodos del trait y de la clase base TestCase.
Ahora, vamos a ver un ejemplo de uno de los tests que tenemos:
Debemos entender que la palabra (o keyword) $this hace referencia a la clase ListArticlesTest y al ejecutar $this->json() se va a buscar un método llamado json dentro de la clase ListArticlesTest y como podemos observar, no existe dicho método, sin embargo, al estar extendiendo a la clase TestCase que a su vez utiliza el trait MakesJsonApiRequests que sí contiene la clase json entonces esa es la que se va a ejecutar.
Ahora, vamos a concentrarnos en el trait MakesJsonApiRequests
En este contexto, parent hace referencia a la clase abstracta TestCase que contiene otro método json
Si hacemos lo siguiente se creará un loop infinito y la aplicación se detendrá:
En este caso estamos llamando al método json del trait MakesJsonApiRequests y dentro del método, estamos llamando nuevamente a sí mismo, al mismo método json por lo que se genera el bucle infinito.