2011-06-30 71 views

回答

16

其实很简单。

  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

+2

谢谢您的回答。但是,我希望此用户拥有很多其他属性,这些属性在我的应用程序中使用。例如,他们有一个$ facebookId属性。我如何使用具有自定义属性的硬编码用户? – Reuven

+0

如何为测试环境指定不同的安全配置?我很乐意能够将我的自由女神提供者改为基本的记忆。 – greg

+0

@whistlergreg我相信你所要做的就是覆盖'config_test.yml/.xml'中的'security'定义。 – Crozin

相关问题