phpunitのデータプロバイダーを試したというお話。
composer.jsonの作成
{
    "require-dev": {
        "phpunit/phpunit": "*"
    },
    "autoload": {
        "psr-4": {
            "Sample\\": "src/"
        }
    }
}
$ composer update
$ tree
/
|--composer.json
|--composer.lock
|--src
| |--Sample.php
|--tests
| |--SampleTest.php
|--vendor
Sample.phpとSampleTest.phpを作成
SampleTest.phpのadditionProviderがデータプロバイダー
Sample.php
<?php
namespace Sample;
class Sample {
    // $a + $b を返す
    public function Add($a, $b) {
        return $a + $b;
    }
    // $a - $b を返す(実際は間違っている)
    public function Sub($a, $b) {
        return $a + $b;
    }
}
SampleTest.php
<?php
use PHPUnit\Framework\TestCase;
use Sample\Sample;
class SampleTest extends PHPUnit\Framework\TestCase {
    public function test_add() {
        $sample = new Sample();
        $this->assertEquals(10, $sample->Add(4, 6));
    }
    /**
     * @dataProvider additionProvider
     */
    public function test_sub($ans, $a, $b) {
        $sample = new Sample();
        $this->assertEquals($ans, $sample->Sub($a, $b));
    }
    public function additionProvider() {
        return [
            [1, 7, 6],
            [2, 8, 6]
        ];
    }
}
PHPUnit 7.4.0 by Sebastian Bergmann and contributors.
.FF                                                                 3 / 3 (100%)
Time: 28 ms, Memory: 4.00MB
There were 2 failures:
1) SampleTest::test_sub with data set #0 (1, 7, 6)
Failed asserting that 13 matches expected 1.
/tests/SampleTest.php:18
2) SampleTest::test_sub with data set #1 (2, 8, 6)
Failed asserting that 14 matches expected 2.
/tests/SampleTest.php:18
FAILURES!
Tests: 3, Assertions: 3, Failures: 2.