在config / routes.rb中:
match 'app_config/:version' => "application#appconfig"
测试/功能/ application_controller_test.rb:
require 'test_helper'
class ApplicationControllerTest < ActionController::TestCase
test "app config" do
get "/app_config/v2"
assert_response :success
end
end
rake test
:
1) Error:
test_app_config(ApplicationControllerTest):
ActionController::RoutingError: No route matches {:controller=>"application", :action=>"/app_config/v2"}
但$ curl localhost:3000/app_config/v2
有效,并返回我期望的响应,rake routes
按预期显示路由。知道发生了什么,或者如何进一步调查?这基本上是项目中唯一的代码。
答案 0 :(得分:1)
get
方法不采用路线。它需要一个动作名称和一个参数的哈希。
如果要测试操作,测试应该如下所示:
test "for success" do
get :appconfig, :version => "v2"
assert_response :success
end
如果您想测试路由,则会有tutorial here in the documentation。
test "should route to appconfig" do
assert_routing '/app_config/v2', { :controller => "application", :action => "appconfig", :version => "v2" }
end