无法在 @dataProvider PHPUnit 中返回对象

5
@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 是一个接口,导入是正确的。


2
错误信息显示该类不存在。PHPUnit并不为此负责。请检查自动加载器的配置和/或类名和命名空间。 - axiac
请记住,数据提供程序仅在测试用例中的所有测试之前执行一次。 - axiac
@axiac 这有什么区别吗?这些提供者只在单独的测试中使用一次。 - wujt
1个回答

4
文档中得知:
一个数据提供程序方法必须是public,且返回一个由数组或实现Iterator接口的对象组成的数组。 每次迭代时都会生成一个数组。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接