2011-12-30 33 views
2

我将Symfony2与Behat,Mink和FosUser Bundle结合使用。问题是登录测试总是失败(登录在开发中完美工作)。无法在symfony2中测试用户身份验证

Scenario: A user can login 
    Given I am on "http://localhost:8888/myapp/web/login" 
    And fill in "username" with "[email protected]" 
    And fill in "password" with "pass" 
    And press "login" 
    Then I should see "Logout" 

测试失败,在当前页面的文本中找不到文本“注销”。 关于缺少什么或如何调试问题的想法?

我可以用Behat/Mink测试未认证的页面。

[更新]

的config_test如下(只是相关位):

## Security Configuration 
security: 
encoders: 
    Symfony\Component\Security\Core\User\User: plaintext 

providers: 
    main: 
     users: 
      [email protected]: { password: senha, roles: ROLE_ADMIN } 

firewalls: 
    secured_area: 
     pattern: ^/ 
     http_basic: true 
     logout:  true 
     security: true 
     anonymous: true 
+0

与其他测试框架,独立zombie.js和Story.php还试图和他们都失败,所以也许它的东西与一些cookie或令牌丢失,导致测试失败,如果没有在浏览器中运行? – Sofia 2011-12-30 03:44:41

+0

添加貂配置(从/app/config/config_test.yml)请 – Inoryy 2011-12-30 10:41:30

回答

0

因为用户的密码不它没有可能的工作,它senha

+0

这是一个错字,senha等于通过葡萄牙语。当我第一次发布并且第二次没有改变时,我简单地将它改为英文。在我的测试中,它应该是senha。任何想法有什么不对?你可以在symfony中使用behat测试认证的页面吗? – Sofia 2012-01-03 21:04:46

+0

您使用Mink的驱动程序是? – 2012-01-03 23:28:30

+0

Symfony的司机Goutte – Sofia 2012-01-05 15:53:58

2

“打印最后响应”的步骤应该可以帮助你找出什么地方出了错:

Scenario: A user can login 
    Given I am on "http://localhost:8888/myapp/web/login" 
    And fill in "username" with "[email protected]" 
    And fill in "password" with "pass" 
    And press "login" 
    And print last response 
    Then I should see "Logout"