Rspec控制器测试无路由匹配错误

时间:2013-07-17 14:08:59

标签: ruby-on-rails ruby rspec routing rake

Rspec无法识别我的控制器路线。我正在使用Versionist gem来对我的API进行版本化,并且我正在使用路径版本(所以/v1/版本我的API版本如下所示。)。

constraints :subdomain => "api" do
  api_version(:module => "V1", :path => {:value => "v1"}, :defaults => {:format => :json}, :default => true) do
  match '/orders' => 'orders#index', :via => :get

佣金路线中的路线显示为: GET /v1/orders(.:format) V1/orders#index {:subdomain=>"api", :format=>:json}

我的控制器位于app/controller/v1/orders_controller.rb

对于rspec测试,我有一个orders_controller_spec.rb,我有:

require 'spec_helper'

module V1
  describe OrdersController do
    describe "GET #index" do
      it "throws an error on incorrect params" do
        get :index
      end
    end
  end
end

我得到的错误是:

 1) V1::OrdersApiController GET #index throws an error on incorrect param
     Failure/Error: get :index
     ActionController::RoutingError:
       No route matches {:controller=>"v1/orders"}

这里有什么问题?为什么没有路线匹配v1/orders?在rake routes中,我看到了如上所示的路线:GET /v1/orders(.:format) V1/orders#index {:subdomain=>"api", :format=>:json}。它说GET /v1/orders。这里的问题在哪里?

0 个答案:

没有答案