【问题标题】:Separate data provider from test case class将数据提供者与测试用例类分开
【发布时间】:2017-11-05 06:31:19
【问题描述】:

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

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

另一个问题是,将测试和数据提供者方法放在同一个测试类中是否是一种好习惯或更好。

【问题讨论】:

    标签: php unit-testing phpunit dataprovider


    【解决方案1】:

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

    【讨论】:

    • 请注意,它仅适用于注释中类的完全限定名称,如@dataProvider \App\Tests\MyProvider::method(),如this other response 中所述。
    【解决方案2】:

    在 Laravel 5.7 中,我使用过:

    来自测试:

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

    来自 ClassNameDataProvider:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多