2011-01-24 22 views
1

で失敗し、次の失敗キュウリのシナリオを持っている:テストでログインし、私は、ユーザー認証のための工夫を使用してい工夫とキュウリ

Scenario: Log in to the system 
    Given a user called "test" with a password of "secret" 
    And I am not logged in # Just visits /users/sign_out 
    When I go to the log in page 
    And I fill in "user_username" with "test" 
    And I fill in "user_password" with "secret" 
    And I press "Sign in" 
    Then I should see "Signed in successfully." 

私は「末端に「次に私のページを表示する」を固執した場合mは空白のログを含むページを表示しました。

次(非常に類似した)テストは動作します:

Scenario: Fail to log in with invalid credentials 
    Given a user called "test" with a password of "secret" 
    And I am not logged in 
    When I go to the log in page 
    And I fill in "user_username" with "test" 
    And I fill in "user_password" with "invalid password" 
    And I press "Sign in" 
    Then I should see "Invalid email or password." 

...ので、私は、ログはキュウリは(FWIWログには、次のされていない検証が成功した後、リダイレクトを行うことを想定していますすべて私がそれをブラウザで手動で行うときに働く)...誰も私にテストをパスする方法を教えてもらえますか?

おかげで、 アッシュ

EDIT:「(。成功裏に署名」)それは?期待#has_content「で失敗している最後のステップだエラー(...エヘンtrueを返すために、偽のです」。 ..それ以前に言及していたはずです!)

答えて

1

修正済み!サーバーをテスト環境にロードして問題を再現しました。

私はconfig.ldap_create_user = trueでldap_authenticatableを使用しています。最初のログイン時に、ユーザーアカウントが存在しない場合は作成されます(これは新しく削除されたテストDBには含まれません)が、ルートルートに従うのではなく、ページのログインページにリダイレクトされます。後続のログインは、予想される動作を実行します。したがって、次のテストに合格:ゴムダッキングのためにpjammerする

Scenario: Log in to the system 
    Given a user called "test" with a password of "secret" 
    And I am not logged in 
    When I go to the log in page 
    And I fill in "user_username" with "test" 
    And I fill in "user_password" with "secret" 
    And I press "Sign in" 
    And I fill in "user_username" with "test" 
    And I fill in "user_password" with "secret" 
    And I press "Sign in" 
    Then I should see "Signed in successfully." 

感謝を!

+0

そして確かに、ldap_authenticatableページに問題があります:https://github.com/cschiewek/devise_ldap_authenticatable/issues#issue/3 – Ash

+1

ifスタックオーバーフローポイントで私に感謝する方法がありました:-) – pjammer

+0

あなたはあなたが言ったことすべてを+1しました。他の方法を考えることはできません。特典ポイント!助けてくれてありがとう! – Ash

1

はidフィールドuser_usernameですか、それともuser_emailなのですか?

また、私はログインページに行くときのように見える?あなたは確かにそこに行く?

+0

はいフィールドIDです。私はその地域の問題だとは思っていません。他のテストは合格していますので、正しく働いていることが分かります。 「私がログインページに行くとき」は、paths.rbに「ログインページ」が追加されたカピバラのステップです。繰り返しますが、それが問題だとは思わないでください。私はそのページから離れて、それで "show me the page"に現れます! – Ash

+1

と秘密のテストユーザー(私はあなたがわかりにくいと知っています)が、そのフィクスチャまたは工場も存在しますか? – pjammer

+0

これは実際には空のステップです - 私はLDAPサーバーに対して認証しており、そのユーザーが存在することを知っています。ブラウザで手動で手順を実行すると、すべてうまく動作します。それはちょうど最後のステップが失敗する。 (実際には、私はそれを明確にしておくべきであることを認識しました!私の悪い..編集中です!) – Ash

関連する問題