-2

我正在编写一些功能测试,看起来客户端找不到路由的控制器,这是我的测试代码:

$response = static::createClient()->request(
  'POST',
  '/api/login_check',
  [
    'body' => [
      'username' => 'username',
      'password' => 'secret123!#'
    ]
  ]
);

当我运行测试时,我收到此错误:

2020-01-13T11:53:54+00:00 [错误] 未捕获的 PHP 异常 Symfony\Component\HttpKernel\Exception\NotFoundHttpException:“找不到路径“/api/login_check”的控制器。路由配置错误。 " 在 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php 第 130 行

路线也按照路线配置:调试

+--------------+---------------------------------------------------------+
| Property     | Value                                                   
|
+--------------+---------------------------------------------------------+
| Route Name   | api_login_check                                         
| Path         | /api/login_check                                        
| Path Regex   | #^/api/login_check$#sD                                  
| Host         | ANY                                                     
| Host Regex   |                                                         
| Scheme       | ANY                                                     
| Method       | POST                                                    
| Requirements | NO CUSTOM                                               
| Class        | Symfony\Component\Routing\Route                         
| Defaults     | NONE                                                    
| Options      | compiler_class: Symfony\Component\Routing\RouteCompiler |
+--------------+---------------------------------------------------------+

这与我之前使用邮递员添加.htaccess文件时的错误完全相同。

4

1 回答 1

1

您正在使用 Http Client 发送错误的参数。

您没有发送编码为 JSON 的身份验证有效负载,也没有发送适当的content-type标头。这就是路由没有正确匹配的原因。

而不是设置body,使用json密钥和 Http 客户端将为您完成工作

上传 JSON 有效负载时,使用json选项而不是body. 给定的内容将自动进行 JSON 编码,请求也会Content-Type: application/json自动添加

$response = static::createClient()->request(
        'POST',
        '/api/login_check',
        [
            'json' => [
                'username' => 'username',
                'password' => 'secret123!#'
            ]
        ]
    );
于 2020-01-13T13:07:02.720 回答