使用水豚调试 rspec 集成测试的最佳方法



我的 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 会话附加到测试。

相关内容

  • 没有找到相关文章

最新更新