rspecのassigns(変数名)に値を渡す方法
rspecのcontrollerでassigns(変数名)で値を受け渡すことができると書かれたいたのに、全く値を渡すことができませんでした。
原因がわかりました。
書き方
Post controllerがあったとします
app/controllers/post_controllers.rb
def index @posts = Post.all end
app/spec/factories/posts.rb
factory :post do body 'hoge' end
app/spec/controllers/posts_controller.rb
it 'GET #index' do post = create(:post) get :index expect(:posts).to post end
あくまでも、app/controllers/post_controllers.rbに@postsを見に行っています。 ここの認識がわかっていませんでした。
まとめ
assignsがアクセスしているのは、controllerのインスタンス変数になります。