我正在使用 rspec-rails、capybara 和 poltergeist (phantomjs) 进行测试。我正在使用 Sorcery 进行身份验证 gem。
到目前为止,我只实现了基本的用户模型,我所有的路线都可以工作,除了signup_path
......我不知道为什么这是唯一似乎被打破的路线。如果我在自己的浏览器 localhost:3000/register 中访问它,它确实可以正常工作
这是我的测试代码作为示例
it "shows a valid signup path", js: true do
visit signup_path
page.should have_content("Sign Up")
end
我收到此错误:
expected there to be text "Sign Up" in
"Internal Server Error undefined method `escape' for
nil:NilClass WEBrick/1.3.1 (Ruby/1.9.3/2012-04-20) at 127.0.0.1:55402"
我可以用signup_path
我的应用程序中的任何其他路线替换。测试会失败,但至少会说“找不到注册<insert content of that page here>
”。因此,即使测试失败,我也可以直接在测试输出中看到该页面的内容。对于 signup_path 它只是直接失败,我自己无法查看错误,因为如果我在自己的浏览器中访问它,它会起作用。
这是我的路线
# User
get 'register' => 'users#new', :as => 'signup'
resources :users, :only => [:create, :edit, :update]
# Session Authentication
get 'login' => 'sessions#new', :as => 'login'
get 'logout' => 'sessions#destroy', :as => 'logout'
resources :sessions, :except => [:new, :destroy]