我的 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
它根本没有找到该选择器,但我在使用开发环境查看源代码时确认它存在。
我希望能够做的是检查正在渲染的页面以查看我缺少的内容。 有没有办法做到这一点?
Capybara 有一个方法save_and_open_page
它将打开一个新的浏览器窗口,其中包含页面的当前状态(它需要 launchy
gem(。
例如:
before do
...
click_button "Sign up"
save_and_open_page
end
这就像使用调试器或规范中的 pry 等其他东西一样简单。
我个人更喜欢 Pry,因为每次我尝试使用 Ruby 1.9 安装调试器时都会有点麻烦......
使用 Pry,您只需在 spec_helper.rb 中添加一个require "pry"
,然后在问题发生之前编写binding.pry
该行。 然后,您将 IRB 会话附加到测试。