visit和current_path之间有什么区别,在rails中使用.should?

时间:2016-02-27 07:40:15

标签: ruby-on-rails testing capybara rspec-rails

Then /^I should be on the free signup page$/ do
  *current_path.should == free_signup_path* 
end

Then /^I should be on the free signup page$/ do
   *visit free_signup_path* 
end

这两者有什么区别?

2 个答案:

答案 0 :(得分:1)

chrome.exe --user-data-dir=test --unsafely-treat-insecure-origin-as-secure=http://localhost:8080 告诉浏览器转到新网址,并会向正在测试的应用发起获取请求。 #visit可让您阅读浏览器所在的当前位置。

注意:在验证当前路径时,您应该停止使用#current_path,而是使用current_path.should == some_path。 have_current_path匹配器包括等待行为,并且有助于使用具有JS功能的驱动程序使测试更加不稳定

答案 1 :(得分:0)

您使用visit告诉rspec转到该路径以验证某些内容是否有效。例如:

it 'contains the new sessions form' do
    visit 'sessions/new'
    current_path.should have_content("Sign In")
end

当我的签到表单有一个按钮或其他任何文本'登录'时,此测试将通过。

您通常必须声明测试应该去哪条路径才能检测内容。

希望这有帮助!