Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Symfony2功能测试中使用经过身份验证的用户?_Php_Phpunit_Symfony - Fatal编程技术网

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

Php 如何在Symfony2功能测试中使用经过身份验证的用户?,php,phpunit,symfony,Php,Phpunit,Symfony,我使用FacebookBundle对Symfony2应用程序中的用户进行身份验证。但是,我想使用phpunit创建功能测试,它使用经过身份验证的用户 此外,我不想用facebook用户来做这件事,但我想用一个 有人知道如何实现吗?其实很简单 为测试环境设置security.yml(它是Symfony 2.0-RC3的一个片段) 如您所见,定义了HTTP身份验证。现在,您所要做的就是在功能测试中设置客户端: $client = static::createClient(array(), arra

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

此外,我不想用facebook用户来做这件事,但我想用一个


有人知道如何实现吗?

其实很简单

  • 为测试环境设置
    security.yml
    (它是Symfony 2.0-RC3的一个片段)

  • 如您所见,定义了HTTP身份验证。现在,您所要做的就是在功能测试中设置客户端:

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


  • 此链接可能有用:

    谢谢您的回答。但是,我希望这个用户有很多其他属性,这些属性在我的应用程序中使用。例如,它们具有$facebookId属性。如何使用具有自定义属性的硬编码用户?如何为测试环境指定不同的安全配置?我希望能够将我的cusom wsse Provider更改为basic in memory。@WhistRGreg我相信您所要做的就是覆盖
    config\u test.yml/.xml
    中的
    security
    定义。尝试过之后,我发现
    不允许您为路径“security.providers”定义新元素。请在一个配置文件中定义此路径的所有元素。
    @WhistRGreg然后将
    security.yml
    的导入从
    config.yml
    移动到
    config\u prod/dev.yml
    ,创建
    security\u test.yml
    并将其导入
    config\u test.yml
    。您可能还需要从
    config\u test.yml
    中删除对
    config\u dev.yml
    的依赖项。
    $client = static::createClient(array(), array(
        'PHP_AUTH_USER' => 'user',
        'PHP_AUTH_PW'   => 'userpass',
    ));