我写了一个简单的规范:
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可以忽略检查吗?任何帮助将不胜感激。
答案 0 :(得分:0)
首先,您应该使用current_path
方法而不是current_url
,因为第二个方法会返回整个网址。另一件事是你断言字符串(期望current_url
等于某个字符串)。在大多数情况下这是完全没问题,但更安全的方法是使用have_current_path
这样:
expect(page).to have_current_path(...)
它将确保完成所有先前的操作,例如click_button
。