【发布时间】:2017-04-17 11:06:21
【问题描述】:
对于应用程序,我们使用配置文件,其中确定了大量端点特征(关系、可填充、可见、角色等)。我们希望循环通过这些文件并使用 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}”方法,以便像单独的测试一样处理它们?
除了这些测试之外,我们还进行单元测试和 e2e 测试,因此我们充分意识到这种测试方式的缺点。
【问题讨论】:
标签: laravel unit-testing testing phpunit behat