我正在尝试使用
ApiPlatform\Symfony\Bundle\Test\ApiTestCase
在 php Symfony 框架中为控制器编写 API 测试,但是当我在控制器中抛出异常(违反约束)时,我在控制台中得到以下输出:
...[error] Uncaught PHP Exception ApiPlatform\Symfony\Validator\Exception\ValidationException: "Exception message" at /srv/src/Repository/MyRepository line 244
string(0) ""
....... 10 / 10 (100%)
如您所见,打破了虚线并写入了错误消息。
这个问题只是视觉上的,但它仍然困扰着我,因为当完成更多这样的测试时,它会使测试输出不可读。
$response = $this->client->request('POST', '/api/test', [
'headers' => [
'Authorization' => $this->token,
],
'json' => [
'data1' => 1,
'data2' => 1
],
]);
$this->assertResponseStatusCodeSame(Response::HTTP_UNPROCESSABLE_ENTITY);
$this->assertEquals('Exception message', $response->toArray(false)['violations'][0]['message']);
$violation = new ConstraintViolation('Exception message', '', [], '', '', '');
throw new ValidationException((new ConstraintViolationList([$violation])));
测试正常进行,响应正确,HTTP 代码也正常,但在我看来,控制台的输出不应该存在。
我可以以某种方式禁用它吗?
安装
monolog
并对其进行配置,以便将错误转储到日志文件中解决了问题。