Capybara / Poltergeist在Rails 3.2 app中的请求规范中导致意外结果

时间:2013-05-14 02:45:26

标签: ruby-on-rails capybara phantomjs poltergeist

我可以选择使用Capybara save_and_open_page吗?我编写了一个测试用户注册表单的请求规范。成功注册后,这个测试应该产生,这个测试应该通过,但事实并非如此。

然而,当我最后save_and_open_page时,所有表单字段都是空白的。我可以在开发环境中镜像这样做自己进行数据输入,一切都过去了,所以我很难理解什么是错的。我不能放过这个,因为显然这是一个关键的考验。

我只是做了一段时间的TDD,所以关于这个堆栈(Capybara和Poltergeist)的任何提示或技巧都会有所帮助。我在使用相同堆栈的其他请求规范中没有类似的困难。

以下是请求规范:

it 'allows a user to subscribe', js: true do
  visit root_url
  click_link "Pricing"
  click_button "Subscribe", match: :first
  fill_in "First name", with: "Marky"
  fill_in "Last name", with: "Mark"
  fill_in "Company", with: "The Funky Bunch"
  fill_in "subscription_email", with: "marky.mark@thefunkybunch.com"
  fill_in "Password", with: "MyString"
  fill_in "Password confirmation", with: "MyString"
  fill_in "Credit Card Number", with: "4242424242424242"
  fill_in "Security Code on Card (CVV)", with: "123"
  select "July", from: "Card Expiration"
  select "2014", from: "card_year"
  check "chkACCEPT"
  click_button "Subscribe to myapp"
  # The line below fails, but a save_and_open page just shows a blank form
  current_path.should_not eq(new_subscription_path)
  page.should have_content("Thank You")
end

1 个答案:

答案 0 :(得分:1)

Poltergeist提供的截图可以代替save_and_open_page使用:

save_screenshot('/path/to/file.png', :full => true)

但是你的评论“#下面的行失败”似乎非常符合“save_and_open页面只显示一个空白表格”。