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

Dav*_*762 2 php phpunit unit-testing dataprovider

我想使用PHPUnit测试我的PHP类。

是否可以将用于我的测试方法的数据提供者放在一个单独的文件中,该文件仅用于存储数据提供者?如果是这样,该怎么做?

另一个问题是,将测试方法和数据提供程序方法放在同一个测试类中是一种好习惯还是更好的选择。

Seb*_*ann 5

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

  • 请注意,它仅适用于注释中类的完全限定名称,如 [this other response](https://stackoverflow.com/问题/45866365/how-can-i-reference-external-data-providers-in-phpunit)。 (3认同)

小智 5

在 Laravel 5.7 中,我使用了:

从测试:

@dataProvider \App\Tests\DataProviders\ClassNameDataProvider::dataMethodName()
Run Code Online (Sandbox Code Playgroud)

来自 ClassNameDataProvider:

public static function dataMethodName(): array
    {
        return [
            [
                'input',
                'output',
            ],
         ]
     }
Run Code Online (Sandbox Code Playgroud)