Zenn
📖

RSpecテスト①(RSpecテストとは,単体テスト・結合テスト・導入方法)

2025/02/21に公開

RSpecテストとは

RubyやRuby on Railsで作ったクラスやメソッドをテストするためのドメイン特化言語 (DSL)を使ったフレームワークです。
つまりは、テスト専用のプログラム言語とも言えます。

下記より引用。
https://www.sejuku.net/blog/47847

12月頃自分でもまとめていた。今思うと全然理解できてないな…。
https://qiita.com/___Eliri/items/e5f81afe21b490c3cdb8
https://qiita.com/___Eliri/items/25b54a3ddd18f17c65ee

結合テスト・結合テスト

主要なテストの種類として、「単体テスト」と「結合テスト」がある。

単体テスト(ユニットテスト)

  • クラス・メソッドごとに、動作をチェックするテスト。
  • つまり、「このメソッドはちゃんと動く?」ってのを1つずつ確かめる感じ。
  • バグの発見が早くなるし、どこが問題かピンポイントでわかる!

単体テスト(ユニットテスト)の進め方

  1. テストコードを先に書く
  2. テストを実行、失敗を確認
  3. 成功するように、プログラムを書く
  4. 1に戻る

上記は、TDD(テスト駆動開発)BDD(振る舞い駆動開発) と呼ばれる開発手法で、頻繁に使用される。

結合テスト(インテグレーションテスト)

  • 単体テストでチェックしたメソッドやクラスを組み合わせて、実際にちゃんと動くかを確認するテスト。
  • 例えば、「フォームに入力 → 送信 → データが保存されるか?」みたいな流れをチェックする。
  • 単体テストだけだと、バラバラに動作確認してるだけだから、全体の流れがOKかどうかはわからない。

どっちも必要!
単体テストだけやっても、全体の流れがうまく動くかはわからないし、結合テストだけだとバグの特定が難しくなる。
だから、両方のテストを組み合わせて使うのが大事!

RSpec導入方法

1.RSpecをgemでインストールする

必ずgroup :test doの中に記述する。

group :test do
  # 下記を追加
  gem 'rspec-rails'
end

2.「bundle install」の実行

bundle install

なんで「bundle install」が必要なんだっけ?
Gemfile に記載されたすべての Gem をインストールするためのコマンド だから。
bundlerは、「gemの依存関係とバージョンを管理するためのツール」

📌 これだけでは、「RSpecのコードを実行する環境」は整うが、RSpecをRailsプロジェクトで実際に使うための設定はまだされていない。

3.RSpecをアプリケーションにインストールする

rails g rspec:install

bundle install だけでは、RSpecをプロジェクトにインストールするだけで、RSpecの設定ファイルは作成されない。
rails g rspec:install を実行することで、RSpecを使用するための設定ファイルやディレクトリが自動生成される。

📌 生成されるファイル

  • .rspec RSpecのコマンドラインオプションを設定
  • spec/ ディレクトリ テストコードを格納するディレクト
  • spec/rails_helper.rb Railsアプリのテスト設定(DBのセットアップなど)
  • spec/spec_helper.rb 基本的なRSpecの設定ファイル

参考文献

とてもわかりやすかったです。ありがとうございました。
bundle instal
https://zenn.dev/airiswim/articles/2f62b9f3cfd609
https://qiita.com/narimiya/items/5132c7bfef8bb2d81685
https://www.sejuku.net/blog/19426
https://zenn.dev/keisuke_suzuki/articles/ad847a9d504731

RSpecテスト
https://zenn.dev/ganmo3/articles/15c4be288b21db
https://zenn.dev/airiswim/articles/91777c39cb0ee8
https://qiita.com/jnchito/items/9dc7b48d06aa323dc6b6

Discussion

ログインするとコメントできます