这个简单的类返回
1)警告 为App \ Tests \ Twig \ GenerateTokenTest :: testGenerateToken指定的数据提供者无效。 数据集#0无效。
class GenerateTokenTest extends TestCase
{
/**
* @dataProvider provideToken
*/
public function testGenerateToken(int $length): void
{
$token = GenerateToken::generate($length);
$this->assertTrue(true);
}
public function provideToken(): iterable
{
yield 8;
yield 16;
yield 29;
}
}
你知道为什么吗?
答案 0 :(得分:2)
如果您将数据提供程序用于PhpUnit,则他们希望每次调用都返回一个数据数组。此内部数组应与您的测试方法的输入变量匹配。因此,如果它具有单个参数$length
,则数据提供者应返回包含测试输入的数组,例如yield [8];
如果测试方法使用多个输入变量-您可能已经猜到了:该数组应包含更多值。例如,根据您的代码:
class GenerateTokenTest extends TestCase
{
/**
* @dataProvider provideToken
*/
public function testGenerateToken(int $length, int $size): void
{
$token = GenerateToken::generate($length);
$this->assertTrue(true);
}
public function provideToken(): iterable
{
yield [8, 9];
yield [16, 17];
yield [29, 30];
}
}