2014-09-26 80 views
0

我正在尝试学习TDD,并且无法通过Capybara和Rspec来进行此集成测试。用户访问主页,点击“登录”,用“电子邮件”和“密码”填写表格,点击“登录”,然后我希望网页的内容为“成功登录”。RSpec /水豚 - 未能登录

home_page_spec.rb

require 'spec_helper' 

feature 'Login' do 
    scenario 'user logs in to the site' do 
    visit root_path 
    click_link 'Login' 
    expect(page).to have_content "Sign in to your account." 
    fill_in('Email', with: "[email protected]") 
    fill_in 'Password', with: "password" 
    click_button 'Log in' 
    expect(page).to have_content('Signed in Successfully') 
    end 
end 

我收到“失败/错误:期待(页)。为了have_content( '在签名成功'),希望能够找到文 “签名成功”。 。“它找到的文本是页面中的符号。就好像测试正在找到登录按钮,但是不是单击它,或者按钮不是转发页面,但是如果我在浏览器中手动执行此操作,它将起作用。有什么建议么?谢谢。

+1

在调试水豚错误时,最好的办法是在失败的期望行之前添加一个'save_and_open_page'行。这将在您的浏览器中启动该页面,您可以(希望)看到您的测试中出了什么问题。 – 2014-09-27 03:39:08

回答

1

您可以使用gem capybara-screenshot保存页面html和屏幕截图,当测试失败时。这样你可以调试问题。或者,您可以暂时切换到selenium webdriver,capybara,它将打开默认浏览器并执行您的测试。