CanCan,如何使用无模式控制器测试rspec?

时间:2011-08-17 22:54:16

标签: ruby-on-rails ruby ruby-on-rails-3 cancan

我有一个没有模特的管理控制器

class AdminController < ApplicationController

    # Sign In Required - Devise Check
    before_filter :authenticate_user!
    # CanCan
    before_filter :current_ability

  # CanCan for Non RESTful Controllers - https://github.com/ryanb/cancan/wiki/Non-RESTful-Controllers
  # We do this as there is no admin model/resouce
  authorize_resource :class => false

我无法弄清楚如何为控制器编写规范。我有以下内容:

  describe 'Admin User' do

    it "should be allow admin users to view admin#index" do
      @ability_for_user_4.can :read, Admin
      get :index
      assert_template :index
    end
  end

失败的原因是:未初始化的常量管理

有什么想法吗?感谢

1 个答案:

答案 0 :(得分:0)

您的规范是否以require 'spec_helper'开头?大多数Ruby on Rails规范从那开始,它会将Rails环境加载到内存中。

否则,您需要创建一个模拟模型,以便Rspec知道Admin是什么。