RSpecテスト作成時に使う create_listについて
こんにちは。スバルです。
今回は、RSpecで使う便利メソッドcreate_listについて学習します。
複数のインスタンスを同時に使える便利メソッドで、下記のように同じファクトリから別のインスタンスを複数作りたい時に使います。
spec/factories/optime.rb
FactoryBot.define do
factory :optime do
title { 'sample-optime' }
content { 'sample-content' }
end
end
RSpec.describe 'yyyy' do
let(:optime1) { create(:optime) }
let(:optime2) { create(:optime) }
let(:optime3) { create(:optime) }
let(:optime4) { create(:optime) }
let(:optime5) { create(:optime) }
...
end
いちいち定義するのって面倒、、そんな時はcreate_listを使っちゃいましょう。
RSpec.describe 'yyyy' do
optimes = create_list(:optime, 5)
...
end
ちなみに下記のようにして属性を上書きすることも可能です。
RSpec.describe 'yyyy' do
optimes = create_list(:optime, 5, title: 'Hello, World')
...
end
RSpecでFactoryBotから複数のインスタンスをまとめて作成する【create_listを使用】 - Qiita