Everyday Rails – RSpecによるRailsテスト入門でRspecを学習中に気づいた点をメモ。
FactoryBotのメソッドを利用する時は、
it "has a valid factory" do
expect(FactoryBot.build(:user)).to be_valid
end
という形でFactoryBot.methodという形をよく見る。
(書籍にも書いてある&ググった時もこの形が多い)
ただこの際、"FactoryBot."の部分を省略できる
(以下FactoryBotのREADMEより引用)
# Returns a User instance that's not saved
user = build(:user)
省略するためには以下の設定が必要。
(以下railsの場合。rails以外のやり方はREADME参照)
spec/rails_helper.rb
RSpec.configure do |config|
config.include FactoryBot::Syntax::Methods
end
懸念点
省略できるのはいいが、
user = build(:user)
という書き方だと、
FactoryBotのメソッドなのかどうか一見して判別つきにくい気もする。
使い分けも必要?