routes

限定只输出匹配到特定控制器的路由规则:

CONTROLLER=schools/ajax rake routes

CONTROLLER=users rake routes

路由测试

你的测试中应该加入路由测试(就和你应用程序的其他部分一样)。Rails 提供三个 内建的断言 被设计来帮助你进行路由的测试。

  • assert_generates
  • assert_recognizes
  • assert_routing
5.2.1 assert_generates 断言

assert_generates 能够对是否生成指定的路径进行断言

  assert_generates "/photos/1", { :controller => "photos", :action => "show", :id => "1" }

   assert_generates "/about", :controller => "pages", :action => "about"
 

assert_recognizes 是 assert_generates 的反向断言. 它能够通过指定的位置判断是否与存在的路由规则匹配。

   assert_recognizes({ :controller=> "photos", :action=> "show", :id=> "1"}, "/photos/1")

 

你可以提供一个 :method 参数来指定使用的 HTTP 行为:

  assert_recognizes({ :controller=> "photos", :action=> "create"}, { :path=> "photos", :method=> :post})

 
5.2.3 assert_routing 断言

assert_routing 对一个路由双向地进行测试: 它测试的一条路径是否与选项匹配,之后测试选项是否生成路径。因此,这条断言结合了前两个测试方法 assert_generates 和 assert_recognizes.

  assert_routing({ :path=> "photos", :method=> :post}, { :controller=> "photos", :action=> "create"})

 
原文地址:https://www.cnblogs.com/qinyan20/p/3680828.html