2011-12-30 59 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"