Rails - 使用rspec测试ApplicationController

时间:2012-10-05 04:36:58

标签: ruby-on-rails rspec

我想在ApplicationController中放置公共控制器动作,索引,显示,创建等,如下所示:

class ApplicationController < ActionController::Base
  respond_to :json

  def index
    #implementation
  end

  def show
   #implementation
  end

  def update
    #implementation
  end
end

该应用只返回JSON。

我已经编写了以下规范来测试这个使用RSPEC的匿名控制器

describe ApplicationController do
  controller do ; end

  describe 'Get :index' do
    it 'should respond to index' do
      get :index

      response.code.should eq "200"
    end
  end
end

上述规范给出了以下错误:

  

ActionView :: MissingTemplate:缺少模板匿名/索引,   应用程序/索引{:locale =&gt; [:en],:formats =&gt; [:json],   :handlers =&gt; [:erb,:builder]}。搜索范围:*   “#”

有人可以建议使用匿名控制器的方法吗?

2 个答案:

答案 0 :(得分:0)

尝试这可能会有所帮助

您的控制器

def index
end

你的rspec测试如

describe "GET index" do
  it "should respond to index" do
    get :index
    response.code.should eq "200"
  end
end

在您的应用程序/文件夹中创建index.html.erb

然后测试它。

答案 1 :(得分:0)

描述“GET索引”做

it "returns correct JSON" do
  # @groups.should have(2).items
  get :index, :format => :json
  response.should be_success
  body = JSON.parse(response.body)
  body.should include('group')
  groups = body['group']
  groups.should have(2).items
  groups.all? {|group| group.key?('customers_count')}.should be_true
  groups.any? {|group| group.key?('customer_ids')}.should be_false
end