我遇到了一个非常奇怪的测试失败,我根据我的代码无法解释。 当我运行下面提供的规范测试时,它将显示以下错误:
故障:
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服务。
我在这里做错了什么?
更新:添加了与群组相关的路线。
答案 0 :(得分:3)
好吧,显然我的Guard和Spork表现得很好。
一旦我重新启动Guard / Spork,它就会按预期工作。回顾代码和配置,没有理由说错误。
因此,如果其他人遇到此行为,他们的配置和代码检查。重启!