Open2
diaryのテストコードを作成

日記一覧に関するテスト
ベースとなる枠組み
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

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)}