Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Validación

20/24
Recursos

Aportes 5

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Es buena practica nombrar las funciones de testing con nombres mas explicitos, esto ayuda al momento de correr los tests completos a identificar mejor donde está el problema cuando hay fallas o a documentar mejor cuando todo está ok. Por ejemplo en lugar de:

    public function test_validate()
    {
        // tests
    }

se podría escribir de esta forma:

    public function test_validate_name_field_has_a_value_when_create_a_new_tag()
    {
        // tests
    } 

Les dejo una forma de verificar varios campos con validaciones utilizando dataProvider:
Estas son mis validaciones:

 public function rules()
    {
        return [
            'id' => 'required',
            'json' => 'required',
            'class_id' => 'required',
            'underscore' => 'required',
        ];
    }

y en mi test hago esto, primero declaro una función donde va a proveer los datos y que son todas las combinaciones de las validaciones que van a fallar:

 public function request_validation_test()
    {
        return [
              ['id', null],
              ['json', null],
              ['class_id', null],
              ['underscore', null],
        ];
    }

a continuación declaro mi test pero con la particularidad de @dataProvider y el nombre de la función del proveedor de datos(request_validation_test):

    /**
     * @dataProvider request_validation_test
     */
    public function test_validation( string $campo, $valor ) {
        $clinics_classes = factory(ClinicsClasses::class)
            ->make([$campo => $valor])
            ->toArray();
       
        $this->post('/api/events/', $clinics_classes)
            ->assertStatus(Response::HTTP_FOUND)
            ->assertSessionHasErrors($campo);
    }

Espero que haya sido claro!
Saludos

Otra solucion muy similar es validar con FormRequest de Laravel…alli se espcifica la regla y se inyecta la dependencia como si fuera un Request.

Por ejemplo:

public function (FormRequestPersonalizado $request)
{
      //CODE
}

De esta manera, tambien se escupe el mensaje de error y no tienes que escribir $request->validate([ ]). Claro…para efectos del curso que es una app muy sencilla validate esta mas que bien pero en una App real es mejor practicar usar FormRequest.

Me ha fallado el audio a partir del minuto 2:45. Soy el único?

Hola! para ésta clase sólo hice dos cambios 🧒 y puedes verlos en detalle aquí:

https://github.com/AbnirHencazs/tag-tdd/tree/d8787e6f835122846e3ee621c89889ee9daedb42