且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在 Symfony2 功能测试中使用经过身份验证的用户?

更新时间:2023-12-02 14:26:40

其实很简单.

  1. 为测试环境设置security.yml(这是来自Symfony 2.0-RC3的片段)

  1. Setup security.yml for test environment (it's a snippet from Symfony 2.0-RC3)

security:
    encoders:
        SymfonyComponentSecurityCoreUserUser: 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 身份验证.所以现在,您所要做的就是在功能测试中设置一个客户端:

  • As you can see there is HTTP Authentication defined. So now, all you have to do is to setup a client in functional test:

    $client = static::createClient(array(), array(
        'PHP_AUTH_USER' => 'user',
        'PHP_AUTH_PW'   => 'userpass',
    ));
    

  • 此链接可能有用:http://symfony.com/doc/current/testing.html