tim*_*one 7 rspec ruby-on-rails
我有以下rspec路由规范,但我需要:defaults => { :format => 'json' }在帖子中指定; 我该怎么做?
规格:
it "should route to all-locations-nav" do
{:post => locations_nav_path }.should route_to(:controller => "api", :action => "locations_nav")
end
Run Code Online (Sandbox Code Playgroud)
编辑#1
所以玩,看起来这样修复它:
it "should route to all-locations-nav" do
{:post => locations_nav_path }.should route_to(:controller => "api", :action => "locations_nav", :format => "json")
end
Run Code Online (Sandbox Code Playgroud)
但如果在任何地方记录这一点,我很好奇吗?
只需像这样在规范中设置格式...
it "routes to #create" do
expect(:post => "/post").to route_to("posts#create", :format => :json)
end
Run Code Online (Sandbox Code Playgroud)
长解释...
您看到的行为并非特定于:format,而是您在其中看到的符号rake routes与传递给 的符号之间的关系route_to。
例如,鉴于您上面的示例,我希望在您运行时会出现以下内容rake routes:
locations_nav POST /api/locations_nav(.:format) api#locations_nav
的:controller和:action没有被明确标记在rake routes响应,如那些被内置到Rails的MVC结构,但是:format明确地示出,并传递:format到route_to抽头到这一点。例如 ...
同样,您可能会:id在rake routes输出中看到一些引用,通过将:id参数传递给route_to.
在“rspec-rails”文档中可以看到一些关于 RSpec 中路由的其他示例。
在内部,RSpec 的route_to委托给 Rails' assert_recognizes,您可以在Rails 文档 中看到记录。
| 归档时间: |
|
| 查看次数: |
1477 次 |
| 最近记录: |