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

发布于 2024-11-18 01:01:48 字数 150 浏览 2 评论 0原文

我使用 FacebookBundle 在 Symfony2 应用程序中对用户进行身份验证。但是,我想使用 phpunit 创建功能测试,该测试使用经过身份验证的用户。

此外,我不想为此使用 Facebook 用户,而是使用编码用户。

有人知道如何实施吗?

I use the FacebookBundle to authenticate users in my Symfony2 application. However, I would like to create functional tests with phpunit which uses an authenticated user.

Moreover, I don't want to use a facebook user for this, but harcoded one.

Does anybody know how to implement this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

°如果伤别离去 2024-11-25 01:01:48

其实很简单。

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

    <前><代码>安全:
    编码器:
    Symfony\Component\Security\Core\User\User:明文

    提供者:
    内存中:
    用户:
    用户:{ 密码:用户密码,角色:[ 'ROLE_USER' ] }
    管理员:{ 密码:adminpass,角色:[ 'ROLE_ADMIN' ] }

    防火墙:
    安全区域:
    模式:^/demo/secured/
    http_基本:
    领域:“安全演示区”

  2. 正如您所看到的,定义了HTTP身份验证。所以现在,您所要做的就是在功能测试中设置客户端:

    $client = static::createClient(array(), array(
        'PHP_AUTH_USER'=>; '用户',
        'PHP_AUTH_PW' => '用户密码',
    ));
    

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

It's actually quite simple.

  1. Setup security.yml for test environment (it's a snippet from 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"
    
  2. 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',
    ));
    

This link might be useful: http://symfony.com/doc/current/testing.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文