Ysi*_*ras 4 ruby-on-rails rails-routing rspec-rails
我得到了一个失败的测试,我调试很困难.
我的测试用例是:
it "routes to #active" do
get ("/parties/active").should route_to("parties#active")
end
Run Code Online (Sandbox Code Playgroud)
我的路线是:
resources :parties do
get 'active', :on => :collection
end
Run Code Online (Sandbox Code Playgroud)
当我运行测试用例时,我收到以下错误:
NoMethodError: undefined method `values' for "/parties/active":String
Run Code Online (Sandbox Code Playgroud)
完整错误输出:https://gist.github.com/1748264
当我运行rake路线时,我看到:
active_parties GET /parties/active(.:format) parties#active
parties GET /parties(.:format) parties#index
POST /parties(.:format) parties#create
new_party GET /parties/new(.:format) parties#new
edit_party GET /parties/:id/edit(.:format) parties#edit
party GET /parties/:id(.:format) parties#show
PUT /parties/:id(.:format) parties#update
DELETE /parties/:id(.:format) parties#destroy
root / parties#show
Run Code Online (Sandbox Code Playgroud)
我正在运行的测试几乎与脚手架生成的测试相同:
it "routes to #new" do
get("/parties/new").should route_to("parties#new")
end
Run Code Online (Sandbox Code Playgroud)
知道发生了什么事吗?
你在get和方法的参数之间放了一个空格.不要那样做.
你有这个:
it "routes to #active" do
get ("/parties/active").should route_to("parties#active")
end
Run Code Online (Sandbox Code Playgroud)
什么时候应该这样:
it "routes to #active" do
get("/parties/active").should route_to("parties#active")
end
Run Code Online (Sandbox Code Playgroud)
否则它会像这样评估:
get(("/parties/active").should route_to("parties#active"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1886 次 |
| 最近记录: |