Я использую FacebookBundle
для аутентификации пользователей в приложении Symfony2. Тем не менее, я хотел бы создать функциональные тесты с phpunit, который использует аутентифицированный пользователь.
Более того, я не хочу использовать для этого пользователя facebook, но он был закодирован.
Кто-нибудь знает, как это реализовать?
На самом деле это довольно просто.
Установите security.yml
для тестовой среды (это фрагмент из Symfony 2.0-RC3)
security: encoders: Symfony\Component\Security\Core\User\User: plaintext providers: in_memory: users: user: { password: userpass, roles: [ 'ROLE_USER' ] } admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } firewalls: secured-area: pattern: ^/demo/secured/ http_basic: realm: "Secured Demo Area"
Как вы можете видеть, определена HTTP-аутентификация. Итак, теперь все, что вам нужно сделать, это настроить клиента в функциональном тесте:
$client = static::createClient(array(), array( 'PHP_AUTH_USER' => 'user', 'PHP_AUTH_PW' => 'userpass', ));
Эта ссылка может быть полезна: http://symfony.com/doc/current/testing.html