Pruebas automatizadas de rangos de números en Laravel con countBetween

  • Publicado el 04 diciembre, 2024
  • Palabras: 61

¿Necesitas comprobar si un recuento se encuentra dentro de un rango específico en tus respuestas JSON? ¡El nuevo método countBetween de Laravel para AssertableJson hace que esta validación sea muy sencilla! Veamos cómo esta útil incorporación simplifica tus pruebas.

Pruebas automatizadas de rangos de números en Laravel con countBetween

#Uso de countBetween

El nuevo método le permite afirmar que un recuento cae dentro de un rango específico:

 

$response->assertJson(fn (AssertableJson $json) => $json
    ->countBetween(10, 30)
    ->etc()
);

 

#Ejemplo práctico

A continuación se muestra cómo puede usarlo en una prueba para una API paginada:

 

class PostApiTest extends TestCase
{
    public function test_search_returns_reasonable_results()
    {
        // Create some test posts
        Post::factory()->count(20)->create([
            'title' => 'Contains searchword'
        ]);
        
        $response = $this->getJson('/api/posts?search=searchword');

        $response->assertJson(fn (AssertableJson $json) => $json
            ->has('data')
            ->countBetween(5, 25)
            ->where('meta.search', 'searchword')
            ->etc()
        );
    }

    public function test_related_posts_suggestions()
    {
        $post = Post::factory()->create();
        
        $response = $this->getJson("/api/posts/{$post->id}/related");

        $response->assertJson(fn (AssertableJson $json) => $json
            ->countBetween(3, 10)  // Expect 3-10 related posts
            ->each(fn ($json) => $json
                ->has('id')
                ->has('title')
                ->etc()
            )
        );
    }
}

 

Este nuevo método de afirmación facilita la prueba de requisitos de recuento flexibles en sus respuestas JSON, lo que es perfecto para escenarios donde no son necesarios recuentos exactos.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

Pruebas automatizadas más limpias con el método withoutHeaders de Laravel
80

Pruebas automatizadas más limpias con el método withoutHeaders de Laravel

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión