我post '/foo/bar', to: 'api/v1/things#bar'
中有routes.rb
。
运行rails routes
返回
foo_bar POST /foo/bar(.:format) api/v1/things#bar
我试图用post '/foo/bar'
测试它,但我得到了
No route matches {:action=>"/foo/bar", :controller=>"api/v1/things"}
我知道问题是愚蠢的,但我无法看到它。有什么想法吗?
答案 0 :(得分:2)
运行控制器规范时,路由不是一个问题。
使用:
post 'bar'
很可能围绕此测试describe API::V1:Things do
,这告诉RSpec使用哪个控制器。
答案 1 :(得分:1)
在控制器测试中,您应该使用实际操作名称bar
。路由详细信息不是控制器的业务。这是一个集中测试,所以只测试控制器逻辑。
/foo/bar
,因为请求将通过路由器。