1

ユーザーがログインした後、Cucumber / Capybara がページに「成功」​​のフラッシュ メッセージを見つけるのに問題があります。ブラウザーで手動で行うと、メッセージを見ることができるので、私のステップで何か間違ったことをしています。

user_login.feature

Feature: User login 

  Scenario: A user successfully logs in from the homepage
    Given A user is on the homepage
    When the user clicks "Login"                                                     
    And they fill out the form
    Then they should see a success message

ステップ定義

Given /^A user is on the homepage$/ do
  @user = Factory.create(:user)
  visit root_path
end

When /^the user clicks "(.*?)"$/ do |arg1|
  click_link arg1
end 

When /^they fill out the form$/ do
  fill_in "email", with: @user.email
  fill_in "password", with: "blahblah1"
  click_button "Sign in"                                                             
end

Then /^they should see a success message$/ do
  page.should have_selector ".alert", text: "Logged in!"
end

出力

expected css ".alert" with text "Logged in!" to return something (RSpec::Expectations::ExpectationNotMetError)
4

1 に答える 1

3

基本的に、私はDERPを作りました。フォームに入力するために使用していた資格情報 (パスワード) は、FactoryGirl を介して作成していたユーザーと同じではありませんでした。これにより、「成功」メッセージのテスト中に「無効なメール/パスワード」メッセージが表示されました。

ページが出力しているものをデバッグするためpage.should have_content "asdfsdfas"に、仕様に a を追加しました。テストが失敗すると、Cucumber はページで取得したコンテンツを、ユーザーが受け取ると予想していたものと比較して出力します。

于 2012-07-21T14:49:47.730 に答える