rspec没有看到嵌套形式的cocoon动态添加或删除的字段

时间:2014-06-26 19:29:38

标签: ruby-on-rails-4 rspec nested-forms cocoon-gem

在我在Rails 4中的应用程序中,我使用Cocoon来嵌套表单。

它在浏览器中运行良好,但我想用rspec添加一些测试。

如果我在测试中制作click_link("add")(或&#39;删除&#39;),则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

1 个答案:

答案 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-webdrivercapybara-webkit宝石。我的印象是Selenium更容易上手,但WebKit的运行速度要快得多。

请注意,如果您需要使用JavaScript测试多个js: true,也可以将feature传递给contextdescribescenario