我正在用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。
为什么?
答案 0 :(得分:0)
在测试时,服务器端代码会出现一些错误,因此错误代码为500.由于我们无法看到您的测试用例和设置,因此我们很难指导您
答案 1 :(得分:0)
添加
<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
解决了它。