将数据提供者与测试用例分开 class

Separate data provider from test case class

我想使用 PHPUnit 来测试我的 PHP class。

是否可以将我的测试方法的数据提供程序放在一个单独的文件中,该文件仅为存储数据提供程序而创建?如果可以,该怎么做?

另一个问题是将测试和数据提供程序方法保留在同一个测试中是否是一个好习惯或者更好class。

只需使用 @dataProvider class::method 即可使用与测试用例 class 不同 class 的方法作为测试的数据提供者。

在Laravel 5.7中,我用过:

来自测试:

@dataProvider \App\Tests\DataProviders\ClassNameDataProvider::dataMethodName()

来自 ClassNameDataProvider:

public static function dataMethodName(): array
    {
        return [
            [
                'input',
                'output',
            ],
         ]
     }