无法在@dataProvider PHPUnit中返回对象

时间:2018-02-05 15:21:13

标签: php phpunit tdd testng-dataprovider

是否允许将对象从@dataProviders返回到测试方法?

public function iOsMessages()
{
    return [
        'update available'        => [1, new UpToDateMessage(), 'pl'],
    ];
}

/**
 * @test
 * @dataProvider iOsMessages
 */
public function success_create_message_for_ios(int $appVersion, MobileMessage $message, string $locale)
{
(...)

错误:

  

为Tests \ Tests \ Mobile \ Classes \ AppVersionTest :: success_create_message_for_ios指定的数据提供程序无效。   未找到“Mobile \ Classes \ Messages \ UpToDateMessage”类

MobileMessage是一个界面,导入是正确的。

1 个答案:

答案 0 :(得分:1)

来自documentation

  

数据提供程序方法必须是公共的,并返回一个数组数组或一个实现Iterator接口的对象,并为每个迭代步骤生成一个数组。