0

config / routers.rb内:

match 'app_config/:version' => "application#appconfig"

test / Functional / 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のルートを示します。何が起こっているのか、またはさらに調査する方法について何か考えはありますか?これは基本的にプロジェクト内の唯一のコードです。

4

1 に答える 1

1

メソッドはgetルートを取りません。アクション名とパラメーターのハッシュを取ります。

アクションをテストする場合、テストは次のようになります。

test "for success" do
  get :appconfig, :version => "v2"
  assert_response :success
end

ルーティングをテストしたい場合は、ここのドキュメントにチュートリアルがあります

test "should route to appconfig" do
  assert_routing '/app_config/v2', { :controller => "application", :action => "appconfig", :version => "v2" }
end
于 2012-12-06T23:35:57.453 に答える