📖
RSpecテスト①(RSpecテストとは,単体テスト・結合テスト・導入方法)
RSpecテストとは
RubyやRuby on Railsで作ったクラスやメソッドをテストするためのドメイン特化言語 (DSL)を使ったフレームワークです。
つまりは、テスト専用のプログラム言語とも言えます。
下記より引用。
12月頃自分でもまとめていた。今思うと全然理解できてないな…。
結合テスト・結合テスト
主要なテストの種類として、「単体テスト」と「結合テスト」がある。
単体テスト(ユニットテスト)
- クラス・メソッドごとに、動作をチェックするテスト。
- つまり、「このメソッドはちゃんと動く?」ってのを1つずつ確かめる感じ。
- バグの発見が早くなるし、どこが問題かピンポイントでわかる!
単体テスト(ユニットテスト)の進め方
- テストコードを先に書く
- テストを実行、失敗を確認
- 成功するように、プログラムを書く
- 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
RSpecテスト
Discussion