3

フォーム (Simple Form で作成) でリクエスト仕様を実行しようとしています。フォームには、関連付けメソッドを使用して生成されたいくつかの選択ボックスが含まれているため、モデルのデータベース値が含まれています。

save_and_open_page を実行すると、ドロップダウンで値を選択するようには見えません。

Mocking と Stubbing を見てきましたが、これは私にとって新しいことであり、基本的な使用法を超えた概念についてはまだ少し混乱しています。

カピバラがピックアップできるように、選択ボックスのコレクションを生成する方法はありますか?

Rails 3.1、Simple Form、Capybara、FactoryGirl を使用しています。

私のコードは...

challenge_spec

describe "New Challenges" do

  before(:all) do
    %w["Under 13", "13 - 16"].each do |item|
      FactoryGirl.create(:age, :name => item)
     end
  end

  it "should redirect to resources after submission" do

    login_valid_user

    visit new_challenge_path

    @challenge = Factory.build(:challenge)

    fill_in "challenge_name", :with => @challenge.name
    fill_in "challenge_description", :with => @challenge.description
    fill_in "challenge_description", :with => @challenge.description
    select "30 mins", :from => "challenge_timescale"
    save_and_open_page
    select 1, :from => "challenge_age_id"
    select @challenge.category, :from => "challenge_category_id"

    click_button "save_button"

  end
end

コントローラ

def new
  @challenge = Challenge.new

  respond_to do |format|
    format.html # new.html.haml
    format.json { render json: @challenge }
  end
end

フォームアイテム

<%= f.association :age, :prompt => "Please select..." %>

モデル

チャレンジ

class Challenge < ActiveRecord::Base
  belongs_to :age
end

class Age < ActiveRecord::Base
  has_many :challenges
end
4

1 に答える 1

0

テスト用のフィクスチャを作成することを強くお勧めします。

このようにして、テストに必要なレコードを手動で作成および操作できます。モック、スタブ、およびダブルを使用するほど効率的でもエレガントでもありませんが、アプリケーションとテストの理解を深めます。

于 2013-01-08T20:30:46.030 に答える