在Rails 3.1中测试路由,可以使用rake routes
命令来查看所有路由,并使用assert_recognizes
方法来测试路由。
首先,在test/functional/your_controller_test.rb
文件中,可以使用以下代码来测试路由:
test "should route to your_action" do
assert_recognizes({:controller => "your_controller", :action => "your_action"}, {:path => "your_path", :method => :get})
end
其中,your_controller
是控制器的名称,your_action
是控制器中的方法名称,your_path
是路由的路径。
例如,如果你有一个名为users
的控制器,其中有一个名为index
的方法,你可以使用以下代码来测试路由:
test "should route to users#index" do
assert_recognizes({:controller => "users", :action => "index"}, {:path => "/users", :method => :get})
end
这将测试/users
路径是否映射到users#index
方法。
如果你想测试带参数的路由,可以使用以下代码:
test "should route to your_action with parameter" do
assert_recognizes({:controller => "your_controller", :action => "your_action", :id => "1"}, {:path => "your_path/1", :method => :get})
end
其中,your_controller
是控制器的名称,your_action
是控制器中的方法名称,your_path
是路由的路径,1
是参数的值。
例如,如果你有一个名为users
的控制器,其中有一个名为show
的方法,你可以使用以下代码来测试路由:
test "should route to users#show with parameter" do
assert_recognizes({:controller => "users", :action => "show", :id => "1"}, {:path => "/users/1", :method => :get})
end
这将测试/users/1
路径是否映射到users#show
方法,并且参数为1
。
最后,在命令行中运行rake test
命令来运行测试。
领取专属 10元无门槛券
手把手带您无忧上云