初めてRoRで遊んでいて、奇妙なエラーが発生しました。シンボル参照を使用しているときにフィールドが見つからない
describe "when logged in" do
before(:each) do
@user = Factory(:user)
visit login_path
#the line below is the weird one
fill_in "session[user_name]", :with => @user.user_name
fill_in :password, :with => @user.password
click_button
end
it "should have navigation links" do
response.should have_selector("nav")
end
it "should have link to log out" do
response.should have_selector("a", :href => logout_path, :content => "Log out")
end
end
コード上でうまく動作しますが、私は
fill_in :user_name, :with => @user.user_name
にライン
fill_in "session[user_name]", :with => @user.user_name
を変更するならば、それは勝った」:私は私のナビゲーションリンクについて次のテストコードを持っていますなぜ仕事をするのか分かりません。あなたは私がパスワードを正確にそれを行う参照コードを見れば
<label for="session_user_name">User name</label><br/>
<input id="session_user_name" name="session[user_name]" size="30" type="text" />
<label for="session_password">Password</label><br/>
<input id="session_password" name="session[password]" size="30" type="password" />
、それはうまく動作します:私が手にエラーが
関連する生成されたHTMLがあるFailure/Error: fill_in :user_name, :with => @user.user_name
Webrat::NotFoundError:
Could not find field: :user_name
です。エラーの原因となっている構文を使用したいので、何か間違っていますか?
フォームの出力HTMLを含めてください。 –
更新を参照してください... htmlの関連部分のみを追加しました。 –