RspecとFactoryBotのインストール
RailsのGemfileの下記の場所にrspec-railsというgemを記述します。またついでにテストデータ作成を効率化してくれるGemである「FactoryBot」もついでにインストールしておきましょう。(どうせRailsで自動テストを学ぶうちにインストールしていくことになるでしょう。)
1 2 3 4 5 6 |
group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] gem 'rspec-rails', '~> 3.7' gem 'factory_bot_rails', '~> 4.11' end |
bundleコマンドを実行します。
1 |
bundle |
Rspecに必要なディレクトリや設定ファイルの準備
下記コマンドを実行します。
1 |
bin/rails g rspec:install |
dockerを使っている場合は下記のコマンドになります。
1 |
docker-compose run (Railsのコンテナ名) bundle exec rails g rspec:install |
そうすると、Railsアプリのトップディレクトリに.rspecファイル(Rspecの設定ファイル)とspecというフォルダができており下記2ファイルが作成されております。
- rails_helper.rb
- spec_helper.rb
spec/rails_helper.rb
RSpecの全体的な設定を記述するためのファイルです。
spec/spec_helper.rb
Rails特有のRspecに関する設定を記述するためのファイルです。
各specの作成
Model Specを作成する。
1 |
bundle exec rails g rspec:model モデル名(例:User) |
「spec/models」の下に「モデル名_spec.rb」というファイルが生成されます。
Controller Specを作成する。
1 |
docker-compose exec web bundle exec rails g rspec:controller モデル名(例:Users) |
「spec/controllers」の下に「モデル名_controller_spec.rb」というファイルが生成されます。
Railsのtestディレクトリを削除する。
Railsはtestディレクトリをデフォルトで作成します。RailsではデフォルトでMinitestというテスティングフレームワークを使っているのでそれを使う場合はtestフォルダが必要になるのですがRspecを使う場合はRspecフォルダ配下にテスト関連のファイルが生成されていくので不要になるためです。
下記コマンドを実行してtestディレクトリおよびその配下のファイルを削除しましょう。
1 |
rm -r ./test |
実行方法
実際にRspecを実行する際は下記のように指定して実行します。
1 |
bundle exec rspec spec/system/○○_spec.rb |
実行結果を文章のようにわかりやすく表示させたい場合は「-f d」オプションを指定します。
1 |
bundle exec rspec -f d spec/system/○○_spec.rb |
systemというディレクトリに実際にテストコードを記述したファイルを作成します。具体的なRspecでのテストコードの書き方は下記の記事でも解説しています。
この記事へのコメントはありません。