我使用FacebookBundle
对Symfony2应用程序中的用户进行身份验证。然而,我想用phpunit创建功能测试,它使用经过身份验证的用户。
此外,我不想用一个脸书用户来做这件事,但我已经编码了一个。
有人知道如何实现这一点吗?
其实很简单。
-
为测试环境设置
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