RSpec测试失败,资源路由“无路由匹配”

时间:2013-11-01 16:17:50

标签: ruby-on-rails ruby rspec

上下文

我遇到了一个非常奇怪的测试失败,我根据我的代码无法解释。 当我运行下面提供的规范测试时,它将显示以下错误:

故障:

1)GroupsController GET'index'返回http成功      失败/错误:获取'索引'      ActionController的:: UrlGenerationError:        没有路线匹配{:action =>“index”,:controller =>“groups”}      #./spec/controllers/groups_controller_spec.rb:14:in块中的“块(3级)”

测试用例

RSpec中设置的控制器和路由的测试用例如下所示:

describe GroupsController do

  before :each do
    @group = FactoryGirl.create(:group)
    @user = FactoryGirl.create(:user)

    sign_in @user
  end

  describe "GET 'index'" do
    it "returns http success" do
      get 'index'
      response.should be_success
    end
  end
end

正在测试的控制器

我根据测试为控制器编写了一个非常基本的骨架。 目前它没有做很多事情。

class GroupsController < ApplicationController
  before_filter :authenticate_user!

  def index
    @groups = current_user.groups
  end
end

配置为到达控制器的路由

routes.rb文件如下所示:

NerdCooking::Application.routes.draw do
  resources :groups
  devise_for :users

  root :to => "home#welcome"
end

路线

              groups GET    /groups(.:format)              groups#index
                     POST   /groups(.:format)              groups#create
           new_group GET    /groups/new(.:format)          groups#new
          edit_group GET    /groups/:id/edit(.:format)     groups#edit
               group GET    /groups/:id(.:format)          groups#show
                     PATCH  /groups/:id(.:format)          groups#update
                     PUT    /groups/:id(.:format)          groups#update
                     DELETE /groups/:id(.:format)          groups#destroy

问题

我尝试更改路线以获取“群组”=&gt; “groups #index”而不是资源路由,但是它不是我想要的东西,因为我也希望将它用作RESTful服务。

我在这里做错了什么?

更新:添加了与群组相关的路线。

1 个答案:

答案 0 :(得分:3)

好吧,显然我的Guard和Spork表现得很好。

一旦我重新启动Guard / Spork,它就会按预期工作。回顾代码和配置,没有理由说错误。

因此,如果其他人遇到此行为,他们的配置和代码检查。重启!