【发布时间】:2017-11-05 06:31:19
【问题描述】:
我想使用 PHPUnit 来测试我的 PHP 类。
是否可以将我的测试方法的数据提供程序放在一个单独的文件中,该文件仅用于存储数据提供程序?如果有怎么办?
另一个问题是,将测试和数据提供者方法放在同一个测试类中是否是一种好习惯或更好。
【问题讨论】:
标签: php unit-testing phpunit dataprovider
我想使用 PHPUnit 来测试我的 PHP 类。
是否可以将我的测试方法的数据提供程序放在一个单独的文件中,该文件仅用于存储数据提供程序?如果有怎么办?
另一个问题是,将测试和数据提供者方法放在同一个测试类中是否是一种好习惯或更好。
【问题讨论】:
标签: php unit-testing phpunit dataprovider
只需使用@dataProvider class::method 即可使用来自与测试用例类不同的类的方法作为测试的数据提供者。
【讨论】:
@dataProvider \App\Tests\MyProvider::method(),如this other response 中所述。
在 Laravel 5.7 中,我使用过:
来自测试:
@dataProvider \App\Tests\DataProviders\ClassNameDataProvider::dataMethodName()
来自 ClassNameDataProvider:
public static function dataMethodName(): array
{
return [
[
'input',
'output',
],
]
}
【讨论】: