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

Desarrollador backend especializado en PHP y Laravel, con sede en Santander, Cantabria. Más de 15 años de experiencia en el desarrollo de aplicaciones web a medida y en la modernización de código heredado.

Archivado en:

Fuente: Harris Raftopoulos

Artículos relacionados

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

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