1

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
4

1 に答える 1

0

私は同じ問題を抱えていましたが、解決策はスポークを走らせることでした。私がそれを止めたとき - すべてがうまくいきました。ここでもっと読む:

Rspec + Selenium に共有 ActiveRecord 接続を使用しないのはなぜですか?

于 2013-03-12T14:08:26.210 に答える