2

どういうわけか、私のスペックは合格していません。@categories仕様に達していないようです。

コントローラは次のとおりです。

class CategoriesController < ApplicationController
  def index
    @categories = Category.all
  end
end

そして私のスペック:

require 'spec_helper'

describe CategoriesController do

  describe "GET #index" do
    category = FactoryGirl.create(:category)
    subject { get :index }
    it { @categories.should include category }
  end

end

エラー:

Failure/Error: @categories.should include category
     NoMethodError:
       undefined method `include?' for nil:NilClass
4

2 に答える 2

3

assignsいいえ。ただし、スペックヘルパーを使用してアクセスできます。

require 'spec_helper'

describe CategoriesController do

  describe "GET #index" do
    category = FactoryGirl.create(:category)
    subject { get :index }
    it { assigns(:categories).should include category }
  end

end
于 2012-06-09T10:27:55.470 に答える
0

インスタンス変数は、仕様ではなくコントローラーで設定されます。

コントローラにインスタンス変数が設定されていることを確認する場合は、次を使用する必要があります

assigns(:categories).should include category

詳細については、こちらをご覧ください。

https://www.relishapp.com/rspec/rspec-rails/v/2-10/docs/controller-specs

于 2012-06-09T10:32:12.553 に答える