🙆‍♂️

RSpecの導入(docker利用)

2023/07/03に公開

RSpecを導入した際の備忘録です。
(自分の場合はminitestがすでに導入されている環境です)
こちらの記事を参照させていただきながら導入しました。
https://zenn.dev/fu_ga/books/ff025eaf9eb387/viewer/f2c0c9

まずGemfileにRSpecのgemを記入します。
あわせてRubyのテストデータ作成ライブラリであるFactoryBotも追加します。

FactoryBotを使うとテストデータの作成が簡単になり、テストコードが読みやすくなると共に保守性も向上するようです。

Gemfile
group :development, :test do
・
・
  gem 'rspec-rails'
  gem 'factory_bot_rails'
end

gemfileを更新したのでイメージをビルド

ターミナル
docker-compose build サービス名

それぞれインストールできたか確認

ターミナル
docker-compose run --rm サービス名 bundle info rspec-rails
docker-compose run --rm サービス名 bundle info factory_bot_rails

無事に導入できました。

つづいてrails gでファイル類を作成

ターミナル
docker-compose run --rm サービス名  bin/rails g rspec:install

ファイルが作成された

出力がドキュメント形式になって見やすくなるため以下を.rspecに記入

.rspec
--format documentation

rspecの動作の確認

.ターミナル
docker-compose run --rm サービス名 bundle exec rspec

問題なく起動することを確認

生成されるテストファイルをRSpecにして、使用頻度の高くないSpecファイルが生成されないように設定

config/application.rb
module App
  class Application < Rails::Application
    .
    .
    config.generators do |g|
      g.test_framework :rspec,
        view_specs: false,
        helper_specs: false,
        routing_specs: false
    end
  end
end

最後にminitest用のフォルダを削除して終了です。

ターミナル
rm -rf test/

Discussion