まずFactoryBotの記述を簡略化するために
以下の記述をする。
spec/spec_helper.rb
#〜省略〜
RSpec.configure do |config|
config.include FactoryBot::Syntax::Methods
#RSpec~ の do~end内に上記の記述をする。
#〜省略〜
end
下記の記述に関して他に応用が効くように公式化してみようと思う。
spec/factories/messages.rb
FactoryBot.define do
factory :message do
content {Faker::Lorem.sentence}
image {File.open("#{Rails.root}/public/images/test_image.jpg")}
user
group
end
end
公式化
spec/factories/message
FactoryBot.define do
# gem名.define do
factory :message do
#factry :モデル名 do 以下で左記モデルのテストデータを定義する。
#factry :テストデータ名, class モデル名 do 左記のような形だと、左記モデル内の"テストデータ名"というテストデータを定義する
content {Faker::Lorem.sentence}
# カラム名 {gem名::Lolem.表示形式} カッコ内はFakerというgemの記法。Lolem はダミーテキストの1種で.sentenceはその表示形式(今回は文章として表示)
# カラム名 '任意の文字列' 左記で任意の文字列を表示させることも可能
image {File.open("#{Rails.root}/public/images/test_image.jpg")}
# カラム名 {表示形式.open("写真のルート")}
user
group
end
end
現状の理解ではこのようなイメージ。
File.openのところや、Rails.rootのところ
FactoryBotの記述を簡略化するための記述に関する理解に自信がないので、
もし解釈が異なるところがありましたらご教示ください。