Skip to content

Como usar un data provider para ejecutar varias veces un test

Posted on:25 de enero de 2024 at 07:00 p. m.

A veces se necesita probar un test varias veces para asegurar que cumple con lo esperado, para resolver esta necesidad se puede usar un data provider

Para este ejemplo se usa PHP 8.3 y PHPUnit 10.5

Primero escribir el data provider con un bucle for con la cantidad deseada

public static function dataProviderTest(): array
{
    $data = [];
    for ($i = 0; $i < 100; $i++) {
        $data[] = ["step{$i}" => ''];
    }

    return $data;
}

Luego solo queda usarlo en el test que se quiere ejecutar varias veces

#[DataProvider('dataProviderTest')]
public function test_example(): void
{
    // TODO: make test
}

En el ejemplo completo se ejecuta 100 veces el test_example

<?php

use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;

class ExampleTest extends TestCase
{
    #[DataProvider('dataProviderTest')]
    public function test_example(): void
    {
        $this->assertTrue(true);
    }

    public static function dataProviderTest(): array
    {
        $data = [];
        for ($i = 0; $i < 100; $i++) {
            $data[] = ["step{$i}" => ''];
        }

        return $data;
    }
}