phpunit - 测试状态码需要 500 而不是 200
问题描述
我正在使用 Symfony 4.1 编写我的第一个测试,我遇到了一个奇怪的问题。测试是确保端点返回状态 200:
public function testFetchTaskEndpointStatusCode200()
{
$client = static::createClient();
$client->request("GET", "/tasks");
$this->assertEquals(200, $client->getResponse()->getStatusCode());
}
然后端点触发以下方法:
/**
* @Route("/tasks")
* @Method("GET")
*/
public function fetchAction()
{
$repository = $this->getDoctrine()->getRepository(Task::class);
$tasks = $repository->findAll();
return $this->json([
'tasks' => $tasks
]);
}
使用 Insomnia 软件,通过浏览器,我可以看到返回的状态是 200,但是在执行测试时:
断言 500 与预期的 200 匹配失败。
为什么?
解决方案
添加
<phpunit>
...
<!-- define your env variables for the test env here -->
<env name="DATABASE_URL" value="mysql://username:password@127.0.0.1:3306/database" />
</phpunit>
解决phpunit.xml.dist
它。
推荐阅读
- python - 在 Cartopy 中创建陆地/海洋面具?
- reactjs - 雨果与 React?
- angular - Angular 7 错误 ReferenceError:未定义 SystemJS
- java - 不能用铬运行黄瓜/硒
- google-cloud-platform - 将 Oracle 11g 数据库迁移到 Google Cloud Spanner
- c# - 我是否正确创建了课程?
- c# - DataTemplate 只指定绑定而不是类型
- pandas - 如何在熊猫的聚合函数中创建查找列的频率
- laravel-5 - 在 Laravel 5.6 中为多对多关系编写迁移表
- node.js - 谷歌云异步处理返回 200