对于一个应用程序,我们使用其中确定了大量端点特征(关系、可填充、可见、角色等)的配置文件。我们希望循环遍历这些文件并使用 PHPUnit 进行自动测试,只是为了查看如果我们收到响应,是否触发了验证错误,响应是否与文件一致,等等。
我们加载配置并为每个端点配置执行测试:
public function testConfigurationFiles()
{
$config = resolve('App\Contracts\ConfigInterface');
foreach ($config->resources as $resource=>$configuration) {
foreach ($configuration->endpoints() as $method=>$rules) {
$this->endpoint($method, $resource, $configuration);
}
}
}
之后我们使用一个开关,以不同的方式测试每种类型的方法(索引、显示、创建、更新、删除)。总的来说,这归结为具有数百个断言的数十个测试。
但是,即使这些端点之一失败,整个测试也会失败,而不会显示出错的明确信息。 有没有办法为每个端点自动生成一个“test{$resource}{$method}”方法,这样它们就会像单独的测试一样被处理?
除了这些测试,我们还进行单元测试和端到端测试,所以我们充分意识到这种测试方式的缺点。
最佳答案
在进一步研究 PHPUnit 之后,我在 dataProviders 中找到了答案:
通过这种方式,您可以为方法指定一个数据提供者,该方法应返回一个数组,其中包含您要迭代的所有情况。
关于laravel - 从带有端点的数组生成 PHPUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40933877/