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"})
浙公网安备 33010602011771号