Rspec
Install
group :development, :test do
gem 'rspec-rails', '~> 5.0.0'
end
rails generate rspec:install
Configuration
.rspec
.rspec
# 全てのファイルでrequireを宣言しなくてもspec_helperがロードされる
--require spec_helper
# 出力を色付け
--color
# 出力形式を詳細に記載
--format documantation
rails_helper.rb
で require spec_helper
がされているので、このファイルを .rspec
内に記載すれば良いように思えるがspec_helper.rb
ファイルにコメントアウトされている記述によると、全てのファイルにロードされるものなのでできるだけ軽量な依存にとどめておくのがベターであると。
Factory bot rails
Install
group :development, :test do
gem 'factory_bot_rails'
end
Configuration
spec/support/factory_bot.rb
RSpec.configure do |config|
config.include FactoryBot::Syntax::Methods
end
rails_helper.rb
Dir[Rails.root.join('spec', 'support', '**', '*.rb')].sort.each { |f| require f }
上記の設定で、FactoryBot
のシンタックスがいらなくなる。
(https://github.com/thoughtbot/factory_bot/blob/master/GETTING_STARTED.md#rspec)
# before
FactoryBot.build(:user)
# after
build(:user)
Generators
上記の設定で railsをAPIモードで動かしている時、モデル、コントローラーを生成すると自動で
controller
spec/requests/users_spec.rb
model
spec/models/user_spec.rb
spec/factories/users.rb
が生成される。
Factory bot Generators: https://github.com/thoughtbot/factory_bot_rails#generators