我用 FacebookBundle
在我的Symfony2应用程序中验证用户身份。但是,我想用phpunit创建功能测试,它使用经过身份验证的用户。
此外,我不想使用facebook用户,而是使用一个用户。
有谁知道如何实现这个?
我用 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',
));
它实际上非常简单。
建立 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',
));