我有一个rspec测试失败,但在开发中,当我自己执行操作时,页面呈现正确。
以下是片段:
describe "sign up process" do
let (:admin1) { FactoryGirl.create(:admin) }
describe "with valid information"
before do
visit new_admin_registration_path
fill_in "Email", with: admin1.email
fill_in "Password", with: admin1.password
fill_in "Password confirmation", with: admin1.password_confirmation
click_button "Sign up"
end
it { should have_selector('div.alert') }
end
根本找不到那个选择器,但我确认在使用开发环境查看源时它存在。
我希望能够做的是检查正在渲染的页面以查看我缺少的内容。有没有办法做到这一点?
答案 0 :(得分:5)
Capybara有一个方法save_and_open_page
,它将打开一个新的浏览器窗口,其中包含页面的当前状态(它需要launchy
gem)。
例如:
before do
...
click_button "Sign up"
save_and_open_page
end
答案 1 :(得分:4)
这就像使用调试器或类似pry的东西一样简单。
我个人更喜欢撬,因为每次我用ruby 1.9尝试安装调试器都是一种麻烦......
使用pry,您只需在spec_helper.rb中添加require "pry"
,然后在问题发生前写一行binding.pry
。然后,你的测试附有一个irb会话。