这个简单的类返回
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;
}
}
Run Code Online (Sandbox Code Playgroud)
你知道为什么吗 ?
如果您使用 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];
}
}
Run Code Online (Sandbox Code Playgroud)