Rails console でも FactoryBot のメソッド呼び出しを簡単にする

Ruby on Rails + FactoryBot で開発をおこなっていると、Rails console を使ってサクッとデータを作成して REPL で検証したくなることがあります。この時 FactoryBot.create()FactoryBot.build() と書かなければならず、普段テストで書いている create()build() に比べると若干の面倒さが目立ってしまいます。

僕は怠惰なので以下のような hook を .pryrc に書いてこの問題を解決してみました。

# -*- mode: ruby -*-

Pry.hooks.add_hook(:before_session, "use FactoryBot shorthand") do |output, binding, pry|
Object.include FactoryBot::Syntax::Methods
end

これでいつでも create(:user)build(:user) でユーザーを作成することができます。

なお、みなさんご想像の通りトップレベルに世界の開発者が想像もしないようなメソッドを生やすので世界が壊れるかもしれません :innocent: