[RUBY] Erstellen Sie mehrere Instanzen zusammen aus FactoryBot mit RSpec mithilfe von create_list

Angenommen, die Fabrik von "note" ist wie folgt definiert.

factory/notes.rb


FactoryBot.define do
  factory :note do
    title { 'sample-note' }
    description { 'sample-description' }
  end
end

Wenn Sie im Test 5 "Note" -Instanzen erstellen möchten, ist es mühsam, eine nach der anderen zu erstellen, wie unten gezeigt.

spec/system/xxx_spec.rb


RSpec.describe 'yyyy' do
  let(:note1) { create(:note) }
  let(:note2) { create(:note) }
  let(:note3) { create(:note) }
  let(:note4) { create(:note) }
  let(:note5) { create(:note) }
  ...
end

Wenn Sie hier "create_list" verwenden, können Sie Notizeninstanzen auf einmal erstellen.

spec/system/xxx_spec.rb


RSpec.describe 'yyyy' do
  notes = create_list(:note, 5)
  ...
end

Geben Sie im ersten Argument die ursprüngliche Factory und im zweiten Argument die zu erstellende Nummer an. (Der Teil notes = kann weggelassen werden)

Übrigens ist es auch möglich, einige der Attribute zu überschreiben.

spec/system/xxx_spec.rb


RSpec.describe 'yyyy' do
  notes = create_list(:note, 5, title: 'Hello, World')
  ...
end

das ist alles.

Recommended Posts

Erstellen Sie mehrere Instanzen zusammen aus FactoryBot mit RSpec mithilfe von create_list
[RSpec] Unit Test (mit gem: factory_bot)