RSpec可以忽略检查端口号吗?

时间:2016-08-09 18:05:16

标签: ruby-on-rails ruby rspec

我写了一个简单的规范:

visit root_url
click_button 'Sign in'

expect(current_url).to eq user_sign_in_url

并运行此规范,因为以下原因而失败:

expected: "http://example.com/users/sign_in"
     got: "http://example.com:12345/users/sign_in"

为什么在这种情况下RSpec检查了端口号?
RSpec可以忽略检查吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

首先,您应该使用current_path方法而不是current_url,因为第二个方法会返回整个网址。另一件事是你断言字符串(期望current_url等于某个字符串)。在大多数情况下这是完全没问题,但更安全的方法是使用have_current_path这样:

expect(page).to have_current_path(...)

它将确保完成所有先前的操作,例如click_button