Rails で generate コマンドを使った時に自動生成される rspec を制御する
Ruby Ruby on Rails
Published: 2019-07-07

やったこと

Rails の generate コマンドを使った時、rspec のファイルも自動生成されますが

今回、自動生成される rspec のファイルを制御します。

確認環境

$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]

$ rails --version
Rails 5.2.3

$ gem list | grep rspec-rails
rspec-rails (3.8.2)

調査

変更前

$ rails g controller Users new
Running via Spring preloader in process 49766
      create  app/controllers/users_controller.rb
       route  get 'users/new'
      invoke  erb
      create    app/views/users
      create    app/views/users/new.html.erb
      invoke  rspec
      create    spec/controllers/users_controller_spec.rb
      create    spec/views/users
      create    spec/views/users/new.html.erb_spec.rb
      invoke  helper
      create    app/helpers/users_helper.rb
      invoke    rspec
      create      spec/helpers/users_helper_spec.rb
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/users.coffee
      invoke    scss
      create      app/assets/stylesheets/users.scss

変更後

config/application.rb

module Sample2
  class Application < Rails::Application
    # 途中コードはスキップ

    config.generators do |g|
      g.test_framework :rspec,
        fixtures: false,
        view_specs: false,
        helper_specs: false,
        routing_specs: false
    end
  end
end
$ rails g controller Users new
Running via Spring preloader in process 51917
      create  app/controllers/users_controller.rb
       route  get 'users/new'
      invoke  erb
      create    app/views/users
      create    app/views/users/new.html.erb
      invoke  rspec
      create    spec/controllers/users_controller_spec.rb
      invoke  helper
      create    app/helpers/users_helper.rb
      invoke    rspec
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/users.coffee
      invoke    scss
      create      app/assets/stylesheets/users.scss

参考

  • Everyday Rails - RSpecによるRailsテスト入門 (2. RSpecのインストール)