No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

18 Días
13 Hrs
40 Min
9 Seg

Nuevo registro

7/23
Recursos

Aportes 8

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Algo interesante, no es necesario editar el Factory de Repository para que la prueba pase, solamente se necesita actualizar su migración y el modelo. Ésto es así puesto que queremos agregar campos que no existen en la base, lo cual se corrige agregando las columnas a la migración, y queremos agregar campos de manera masiva, lo cual se le informa a la Laravel a través del modelo de Repository con su propiedad fillable.

No es necesario actualizar el factory de Repository ya que el único que usamos dentro de la prueba es el de User. Los invito a hacer la prueba! 👨‍💻👩‍💻

php artisan test

Modificados:

  • tests/Feature/Http/Controllers/RepositoryControllerTest.php
    • test_store
  • app/Http/Controllers/RepositoryController.php
  • database/migrations/2021_01_11_024601_create_repositories_table.php

Tests:

    • Enviar HTTP-Post creando nuevo usuario, validar la redirección y validar su presencia en la base de datos

Buenas a todos!
Quizás esto pueda ser de utilidad ya que para mi al menos lo está siendo. Puede que sea algo que se realice de forma habitual pero que en el caso del curso no se haga para no demorar demasiado la generación del código. Por ejemplo en el caso de esta clase si se ejecuta el test antes de crear el método store, dicho test da este error:
** • Tests\Feature\Http\Controllers\RepositoryControllerTest > store
Response status code [500] is not a redirect status code.
Failed asserting that false is true.**
El cual no es de mucha ayuda, en principio. Pero si se añade en el código del test:
$this->withoutExceptionHandling();
Entonces el error que aparece es:
** • Tests\Feature\Http\Controllers\RepositoryControllerTest > store
BadMethodCallException

Method App\Http\Controllers\RepositoryController::store does not exist.**
Dando quizás un detalle mayor de lo que ocurre e ir de esta forma pudiendo realizar la metodología tdd paso a paso (aunque con pasos mas pequeños) hasta llegar al ansiado verde.
Muchas gracias por tan excelente curso!

Para que les muestre el error en la consola deben agregar la siguiente linea:

$this->withoutExceptionHandling();
de la misma forma se crearía en una api??

Podemos hacer uso de las rutas y construir la data apartir del factory para cuando el modelo tenga muchos atributos.

Interesante, no sabia que se podia crear elementos desde las relaciones aunque es muy logico por al final eso retorna un modelo que tiene la funcion create. Yo me habia adelantado y para obtener el id del usuario habia utilizado el facades Auth y obteniendo el id de esta forma Auth::user()->id

Esto tambien es un camino pero es menos eficiente porque escribes mas lineas de codigo.

Si te pasó como a mí que cuando creaste el modelo le dijiste a artisan que creara todo (con -a) seguro te pasó que creó la clase “StoreRepositoryRequest”.

Cuando vayas a hacer las pruebas mostradas en esta clase te saldrá un error de “This action is unauthorized” usando “$this->withoutExceptionHandling();”.

Lo que tienes que hacer es ir al archivo “App\Http\Requests\StoreRepositoryRequest” y editar la función authorize que devuelva true en vez de false.

Saludos!.