はじめに
RailsアプリにRSpecを導入してみました。
今回は、既存のMinitestをすべて置き換えるのではなく、必要な部分から少しずつRSpecを使う方針で進めました。
環境
- Ruby
- Rails
- Docker
- PostgreSQL
- RSpec
RSpecを導入した背景
- Railsのテストとしてよく使われているため
- 今後の実務を意識して触れておきたかったため
- 既存アプリの一部から試してみたかったため
導入手順
- Gemfileに
rspec-railsを追加 -
bundle installを実行 - RSpecの初期設定
- specディレクトリの作成
実際に書いたテスト
- Serviceクラスのテストから始めた
- ControllerやSystem Specではなく、まずは小さく始めた
詰まったこと
- MinitestとRSpecが混在してもよいのか迷った
- specファイルの置き場所に迷った
- RuboCopの指摘に反応した(主にテストコードが長いなど)
学んだこと
- 個人開発であれば、既存アプリにRSpecを少しずつ導入する方法も選択肢になる
- 最初からすべてのテストをRSpecに置き換えなくても、Serviceクラスなど小さな範囲から試すことができる
- ただし、チーム開発では既存のテスト方針や運用ルールに合わせる必要がある
- RSpecを導入する目的を明確にしてから進めることが大切だと感じた
まとめ
今回は、個人開発のRailsアプリにRSpecを最小構成で導入してみました。
RSpecというと、最初から本格的に使いこなさなければならない印象がありましたが、実際にはServiceクラスのような小さな範囲から試すこともできました。
既存のMinitestをすべて置き換えるのではなく、まずは一部だけRSpecで書いてみることで、導入の流れやspecファイルの書き方を少しずつ理解できたと感じています。
ただし、これはあくまで個人開発での進め方です。チーム開発では、既存のテスト方針やCI、レビュー方針に合わせる必要があります。
今回の経験を通して、RSpecは最初から完璧に導入するものではなく、目的を決めて小さく試すことから始めてもよいと学びました。