0

非常に単純なRSpecCapybarahave_selector()が機能していないようで、その理由がわかりません...しかしおそらく単純なものです。

RSpecリクエストテストは次のとおりです。

describe 'with valid information'
  let(:user) { FactoryGirl.create(:user) }
  before do
    fill_in 'Email', with: user.email
    fill_in 'Password, with: user.password
    click_button 'Login'
  end
  it { should have_selector('p', text: user.first_name) }
  ...
end

セッションのnew.html.erb場合、私は次のようなものを持っています:

<% if logged_in? %>
  <p><%= current_user.first_name %></p>
<% else %>
  <%= form_for(:session, url: sessions_path) do |f| %>
  ...
<% end %>

ログインフォームsession#newはブラウザで完全に機能します。私はうまくログインでき、pタグの名を見ることができます。問題はカピバラの部分にあるようです。ページ上itのタグをチェックする他のテストh1(ログインに関係なく存在する)が正常に機能するためです。

誰かが問題が何であるか知っていますか?

助けてくれてありがとう!

4

2 に答える 2

2

おそらく、何らかの理由でログインが失敗しています。

テストを次のように変更します。

it "should show me my first name" do
  save_and_open_page
  should have_selector('p', text: user.first_name)
end

これにより、ブラウザが開き、テストブラウザが現在表示しているページが表示されます。launchy( gemをGemfileに追加する必要がある場合があります。)

putsたとえば、テストを追加したり、アクセスしたページをチェックするテストを追加したりするのに役立つ診断が他にもいくつかあります。たとえば、次のようになります。

it "redirects to the home page after log in" do
  current_path.should == root_path
end
于 2012-07-01T10:41:54.890 に答える
0
fill_in 'Password, with: user.password

あのようでなく。この行を使用する必要があります、

fill_in 'Password', with: user.password
于 2012-07-01T10:48:08.000 に答える