gpt4 book ai didi

php - symfony 功能测试的 500 状态代码

转载 作者:行者123 更新时间:2023-12-05 01:19:31 24 4
gpt4 key购买 nike

我正在执行测试以查看某条路线是否有效。页面/路线位于 http://localhost/login当我在浏览器中访问它时,它工作正常,我已经在没有 cookie 的情况下进行了测试,并且我的缓存已被清除。

但是,一旦我在 phpunit LoginControllerTest 类中对其进行测试,我就会收到 500 状态代码内部服务器错误。

<?php

namespace Tests\AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class LoginControllerTest extends WebTestCase
{
public function testLoginPage()
{
$client = static::createClient();

$crawler = $client->request('GET', '/login');
// var_dump($client->getRequest()->getContent()); // Is empty
// 200 => 'OK'
$this->assertEquals(200, $client->getResponse()->getStatusCode());
}
// ...

因此运行 phpunit 失败并显示:

Failed asserting that 500 matches expected 200.

这是security.yml,以防对理解问题有帮助。

# app/config/security.yml
security:
providers:
db_provider:
entity:
class: AppBundle:Users
property: Username

role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH ]

firewalls:
secured_area:
pattern: ^/
anonymous: ~

dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false

default:
pattern: ^/manage
guard:
authenticators:
- app.token_authenticator

access_control:
- { path: ^/manage, roles: ROLE_USER }

路线已定义且有效(如预期)。

// ...
class LoginController extends Controller
{
/**
* @Route("/login", name="LoginForm")
*/
public function loginFormAction(Request $request)
{
// ...

最佳答案

这个问题有点老了,但是有可能(至少从 symfony 5.2 开始)

$client->catchExceptions(false);

您将直接在 phpunit 输出中获得堆栈跟踪

关于php - symfony 功能测试的 500 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39321604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com