Raild 3.2.11、Capybara 2.0.2、Factory Girl 4.1.0 を使用しています。
カピバラを使用してフォームで複数のユーザーを選択しようとしています。ただし、ユーザーが作成されていないようです。ビューは正常に機能し、Rails Server を使用すると複数のユーザーを選択できます。どういうわけか、最後に作成されたインスタンスである Joe_4 にログインします。
テストで次のエラーが発生します。
Capybara::ElementNotFound:
Unable to find option "Joe_1"
工場.rb
FactoryGirl.define do
sequence :nickname do |n|
"Joe_#{n}"
end
sequence :email do |e|
"joe_#{e}@kebas.com"
end
factory :player, :aliases =>
[:first_pair_1st_player, :first_pair_2nd_player,
:second_pair_1st_player, :second_pair_2nd_player] do
nickname
email
password "password"
password_confirmation "password"
end
end
Features/match_test_spec.rb
require 'spec_helper'
describe "Entered matched results" do
before :each do
4.times do
FactoryGirl.create(:player)
end
end
context "should fail when," do
it "the score are the same" do
visit root_path
valid_player_login
click_link "New Match"
select('Joe_1', :from => 'doubles_match_first_pair_1st_player_id')
select('Joe_2', :from => 'doubles_match_first_pair_2nd_player_id')
select('Joe_3', :from => 'doubles_match_second_pair_1st_player_id')
select('Joe_4', :from => 'doubles_match_second_pair_1st_player_id')
fill_in "doubles_match_first_pair_score", :with => "14"
fill_in "doubles_match_second_pair_score", :with => "14"
click_link_or_button "Game Over"
page.should have_content("Match can't end with the same score")
end
end