Railsのテストでshoulda-matchersを使う
Rspecのテストでshoulda-matcherを使うとテスト結果の確認が楽。
なので、使い方をメモっておくために、まずはcontroller側のサンプルを載せる
1 require 'spec_helper' 2 3 describe AlbumsController do 4 fixtures :users 5 fixtures :albums 6 fixtures :photos 7 8 describe "albums list" do 9 context "index method" do 10 before do 11 @user = User.find(1) 12 controller.stub(:current_user) { @user } 13 get :index 14 end 15 it { expect(@user.albums).not_to be_nil } 16 it { expect(@user.albums.size).to eql(2) } 17 it { expect(render_template('index')) } 18 it { expect(render_with_layout('album')) } 19 it { expect(respond_with(200)) } 20 # it { expect route(:get, '/albums').to('albums#index') } 21 end 22 end 23 24 describe "album list(guest) " do 25 context "guest_user_show method" do 26 before do 27 # @user = User.find(1) 28 # controller.sutb(:current_user) { @user } 29 @album = Album.find(1) 30 get :guest_user_show , id: 1 31 end 32 it { expect(@album).not_to be_nil } 33 it { expect(render_template('guest_user_show')) } 34 # it { expect route(:get, '/albums/1/guest_user_show').to('albums#guest_user_show', id: 1) } 35 end 36 end 37 end