我使用FacebookBundle
来验证Symfony2应用程序中的用户。但是,我想用phpunit创建功能测试,该测试使用经过身份验证的用户。
此外,我不想使用facebook用户,而是使用了一个用户。
有人知道如何实现这个吗?
答案 0 :(得分:16)
实际上很简单。
为测试环境设置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',
));