Open2

diaryのテストコードを作成

yoshiyoshi

日記一覧に関するテスト

ベースとなる枠組み

require 'rails_helper'

RSpec.describe 'Diaries', type: :system do
  describe 'Diary' do

    describe '日記一覧' do
      let(:user_a) { create(:user) }
      let(:user_b) { create(:user) }
      let!(:diary_a) { create(:diary, user: user_a)}
      let!(:diary_entries_a) { create_list(:diary_entry, 3, diary: diary_a)}
      context 'ユーザーAがログインしている時' do
        before do
          login(user_a) # ユーザーAでログイン
          visit diaries_path
        end
        it 'ユーザーAが作成した日記が表示される' do
        end
      end
      context 'ユーザーBがログインしている時' do
        before do
          login(user_b) # ユーザーBでログイン
          visit diaries_path
        end
        it 'ユーザーAが作成した日記が表示されない' do
        end
      end
    end
  end
end
yoshiyoshi

create_listメソッドを使用すると、簡単に複数のインスタンスを作成することができる

例えば3つのインスタンスを作成する時以下のように書きます。

let(:diary_entries_1) { create(:diary_entry, diary: diary_a)}
let(:diary_entries_2) { create(:diary_entry, diary: diary_a)}
let(:diary_entries_3) { create(:diary_entry, diary: diary_a)}

create_listメソッドを使用すると、一文で書くことができる

let(:diary_entries) { create_list(:diary_entry, 3, diary: diary_a)}