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

标签 php phpunit symfony

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

此外,我不想为此使用 facebook 用户,而是使用 harcoded 用户。

有人知道如何实现吗?

最佳答案

其实很简单。

  1. 为测试环境设置 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"
    
  2. 如您所见,已定义 HTTP 身份验证。所以现在,您所要做的就是在功能测试中设置客户端:

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

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

关于php - 如何在 Symfony2 功能测试中使用经过身份验证的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6535873/

相关文章:

php - 如何将 URL 变量传递给 Silverstripe 中的表单

php - 插件模型中的 CakePHP 3 defaultConnectionName 不起作用

php - htaccess 301 重定向 - 删除查询字符串

phpunit - 如何在 PHPStorm 中使用代码覆盖率

php - Symfony elasticsearch包

symfony - 在 PHPUnit 的联系表单中设置 AbstractType 的名称

php - 动态 css 样式表的奇怪行为

unit-testing - Yii2 上的模型单元测试

PHPUnit3.6 与 Ant 替代 --log-pmd,--log-metrics?

Symfony autowire @required 方法与事件调度程序从未被调用