【发布时间】:2014-03-17 12:51:41
【问题描述】:
我正在使用带有 Rspec 的 Capybara 编写测试,并且我到达了必须选择下拉选项的步骤。下拉列表包含开发环境中从数据库中检索的类别(对于某些活动)。测试时,它们不再作为选项出现在下拉列表中。
如何在测试环境中填充下拉菜单?
我有以下工厂:
FactoryGirl.define do
factory :category do
name { 'art' }
end
end
FactoryGirl.define do
factory :activity do
title { Faker::Lorem.sentence[0...Activity::MAX_TITLE_LENGTH] }
description { Faker::Lorem.sentence }
factory :full_activity do
categories { |pa| [ pa.association(:category) ] }
venues { [ FactoryGirl.build(:venue, :city => location) ] }
end
end
end
在我的功能测试中有:
require 'spec_helper'
feature "add new activity", js: true do
let(:category) { FactoryGirl.create(:category)}
let(:activity) do
FactoryGirl.create({
venues: [FactoryGirl.create(:venue)]
})
end
scenario "user fills step 1" do
visit root_path
click_on("Add activity")
expect(page).to have_content("Categories")
page.select 'art', :from => 'category_dd_id'
page.find("#save_step_1").click
end
end
在 /models/activity.rb 中:
has_and_belongs_to_many :categories
在 /models/category.rb:
has_and_belongs_to_many :activities
【问题讨论】:
标签: ruby-on-rails-3 rspec capybara