【发布时间】:2012-07-16 06:28:30
【问题描述】:
仍在尝试了解关系并在 rails/rspec 中进行测试。
我有一个应用程序,它有一个模型测验,它属于一个图标模型,并且有_许多测验。
我正在尝试使用 rspec/capybara 和工厂女孩在测试中创建我的数据来测试是否在 quiz/new 页面上创建了一个新测验。
这是我的测试..
describe "new quiz page" do
let(:user) { FactoryGirl.create(:user) }
let(:icon) { FactoryGirl.create(:icon) }
before do
sign_in user
visit new_quiz_path
end
....
describe "with valid info" do
before do
fill_in "Title", with: "Example title"
fill_in "Description", with: "Example quiz description"
select icon.title, from: "quiz_icon_id"
end
it "should create new content" do
expect { click_button submit }.to change(Quiz, :count).by(1)
end
end
end
我得到的 rspec 错误是...
Failure/Error: select icon.title, from: "quiz_icon_id"
Capybara::ElementNotFound:
cannot select option, no option with text 'Icon 1' in select box 'quiz_icon_id'
所以问题显然是没有可供选择的图标。一个肯定是用工厂女孩方法创建的,因为它可以找到标题,但不会在测试表中复制。我不知道如何让它发挥作用。
谁能在这里指点一下?
谢谢,马克。
【问题讨论】:
-
在您的
it块中输入save_and_open_page以查看正在呈现的页面。 -
“quiz_icon_id”的表单输入是什么样的?通常,您应该使用字段的标签进行选择。例如,如果一个字段被称为
category,但在表单上标签被称为User Category,那么您需要使用`from:“用户类别”。
标签: ruby-on-rails ruby-on-rails-3 rspec capybara factory-bot