web-dev-qa-db-ja.com

Rspec:インスタンス変数の割り当てのテスト

Factory GirlでRspecを使用する。コントローラに割り当てられているデータを確認しようとしています(そしてそれに対してテストしています)。私が読んだすべての投稿は、assigns()から何かを取得できるはずだと言っていますが、それでもnillが返され続けます

コントローラ

def index
 @stickies = Sticky.where(:user_id => current_user.id)
end

Spec

it "should assign stickies" do
  foo = assigns(:stickies)
  puts "foo = #{foo}"
end

出力

foo = 

間違った構文を使用していますか?これを行うより良い方法はありますか?ありがとう!!

37
jmccartie

最初にアクションを呼び出す必要があります


describe StickiesController do
  describe "GET index" do
    it "should assign stickies" do
      get :index
      assigns(:stickies).should_not be_nil
    end
  end
end
88
David Chelimsky

Rspec> 2.99を使用している場合は、以下を使用できます。

expect(assigns(:stickies)).not_to be_nil

14
Calin