0
我正在执行测试以查看某个路由是否正常工作。页面/路由发现在http://localhost/login,当我在浏览器中它的工作正常,我已经测试了这没有饼干和我的缓存清除。symfony功能测试的500个状态代码
但是,只要我在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)
{
// ...
感谢您让我走向正确的方向。我一直在查看响应的输出,并使用您的代码在终端中打印错误。我发现使用'''crawler-> filter('title');''提供了一个很好的友好错误信息 - 你给的xpath实际上并不存在我得到的响应。我现在应该能够修复这些错误。 – iyop45