0

次のように、一般的なコントローラー アクション、index、show、create などを 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=>[:en]、:formats=>[:json]、:handlers=>[:erb、:builder]} のアプリケーション/インデックスがありません。検索場所: * "#"

匿名コントローラーでこれを機能させる方法を誰かが提案できますか?

4

2 に答える 2

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

終わり

于 2012-10-05T07:12:39.053 に答える
0

これを試してみてください

あなたのコントローラーのような

def index
end

あなたのrspecテストのような

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

application/ フォルダーに index.html.erb を作成します

それをテストします。

于 2012-10-05T04:43:24.693 に答える