在我在Rails 4中的应用程序中,我使用Cocoon来嵌套表单。
它在浏览器中运行良好,但我想用rspec添加一些测试。
如果我在测试中制作click_link("add")
(或'删除'),则rspec没有看到任何修改(我在之前和之后打印page.body
)。< / p>
我也尝试使用sleep(10)
,但它是一样的。
我如何测试操作(添加或删除嵌套表单)是否有效?
由于
编辑:
要测试的场景:
scenario "nested form" do
user_sign_in
contact = FactoryGirl.create(:contact)
visit new_message_path
expect(page).to have_text("New message")
puts page.html
click_link('Add an action') # <------ click on the link to add a new nested form
puts page.html # <--- the page is the same as before the click
expect(page).to have_text("New action")
user_sign_out
end
答案 0 :(得分:1)
如果您要测试与JavaScript相关的功能,那么您需要将js: true
作为选项传递给相关的scenario
:
scenario "nested form", js: true do
user_sign_in
contact = FactoryGirl.create(:contact)
visit new_message_path
expect(page).to have_text("New message")
click_link('Add an action')
expect(page).to have_text("New action")
user_sign_out
end
为了做到这一点,您还需要selenium-webdriver
或capybara-webkit
宝石。我的印象是Selenium更容易上手,但WebKit的运行速度要快得多。
请注意,如果您需要使用JavaScript测试多个js: true
,也可以将feature
传递给context
,describe
或scenario
。