Ruby on Railsプロジェクトのセットアップ

学習の目標

本章では、以下の内容を学習します。

  • 新しいRailsプロジェクトの作成手順を理解する
  • RSpecをRailsプロジェクトに導入する方法を習得する
  • .rspecファイルを使った設定管理について学ぶ
  • RSpecの初期設定ファイルの役割を理解する
  • プロジェクト全体で一貫したテスト環境を構築する方法を身につける

はじめに

Webアプリケーションの開発において、しっかりとしたテスト環境を整えることは品質の高いソフトウェアを作るために欠かせません。特にRuby on Railsでは、アプリケーションが大きくなるにつれて、手動での動作確認が困難になっていきます。

そこで重要になるのが自動テストです。RSpecは、Rubyで最も人気のあるテストフレームワークの一つで、読みやすく書きやすいテストコードを実現できます。

この章では、新しいRailsプロジェクトを一から作成し、RSpecを導入する手順を学んでいきます。Rubyがインストールされている状態から始めて、まずはRailsをインストールし、その後でRSpecをセットアップしていきましょう。

プロジェクトの初期化とRailsのインストール

それでは実際に手を動かしながら、Railsプロジェクトを作成していきましょう。

まず最初に、プロジェクト用のディレクトリを作成し、そこでRubyの依存関係を管理するための準備をします。適当なディレクトリで以下のコマンドを実行してください。

bundle init

このコマンドを実行すると、現在のディレクトリにGemfileというファイルが生成されます。Gemfileは、Rubyプロジェクトで使用するライブラリ(Gem)を管理するための重要なファイルです。

生成されたGemfileを開いてみると、以下のような内容になっているはずです。

# frozen_string_literal: true
source "https://rubygems.org"
# gem "rails"

よく見ると、gem "rails"という行がコメントアウトされていますね。この行の先頭にある#を削除して、Railsを有効にしましょう。

# frozen_string_literal: true
source "https://rubygems.org"
gem "rails"

ファイルを保存したら、次のコマンドでRailsをインストールします。

bundle install

このコマンドを実行すると、Railsとその依存関係にある多くのGemがインストールされます。初回のインストールでは少し時間がかかるかもしれませんが、コーヒーでも飲みながら待ちましょう。

インストールが完了すると、「Bundle complete!」というメッセージが表示されます。これでRailsを使う準備が整いました。

新しいRailsプロジェクトの作成

Railsがインストールできたら、いよいよ新しいプロジェクトを作成します。以下のコマンドを実行してください。

bundle exec rails new rspec-rails --skip-test

このコマンドについて、少し詳しく説明しましょう。

bundle execは、現在のプロジェクトにインストールされたGemを使ってコマンドを実行するための指定です。rails newは新しいRailsプロジェクトを作成するコマンドで、rspec-railsはプロジェクト名です。

そして最後の--skip-testオプションが重要です。RailsにはMiniTestというテストフレームワークがデフォルトで組み込まれていますが、私たちはRSpecを使いたいので、MiniTestのファイルは生成しないようにしています。

プロジェクトの作成が始まると、多くのファイルが生成される様子が表示されます。最後に以下のようなメッセージが表示されれば成功です。

Bundle complete! 1 Gemfile dependency, 61 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

Railsサーバーの動作確認

プロジェクトが正しく作成されたか確認してみましょう。まず、作成されたプロジェクトディレクトリに移動します。

cd rspec-rails

次に、Railsサーバーを起動してみましょう。

bundle exec rails s

サーバーが起動したら、ブラウザでhttp://127.0.0.1:3000にアクセスしてください。Railsのウェルカムページが表示されれば、プロジェクトの作成は成功です。

確認できたら、ターミナルでCtrl + Cを押してサーバーを停止してください。

RSpecのインストール

さて、ここからが本題です。作成したRailsプロジェクトにRSpecを追加していきましょう。

まず、プロジェクト内のGemfileを開きます。このファイルには、すでに多くのGemが記載されていますが、その中からgroup :development, :test doというブロックを探してください。

このブロックは、開発環境とテスト環境でのみ使用するGemを指定する場所です。ここにrspec-railsを追加します。

# Gemfile
group :development, :test do
# 他の gem は省略
gem 'rspec-rails'
end

rspec-railsは、RailsでRSpecを使うための橋渡しをしてくれるGemです。これがあることで、RailsのモデルやコントローラーなどをRSpecでテストできるようになります。

Gemfileを保存したら、以下のコマンドでインストールします。

bundle install

インストールが完了したら、RSpecが正しく動作するか確認してみましょう。

bundle exec rspec

以下のような出力が表示されれば、RSpecのインストールは成功です。

No examples found.
Finished in 0.00025 seconds (files took 0.12288 seconds to load)
0 examples, 0 failures

まだテストを書いていないので「No examples found」と表示されますが、これは正常な動作です。

RSpecの初期設定

RSpecをRailsプロジェクトで使うためには、もう少し設定が必要です。以下のコマンドを実行して、RSpec用の設定ファイルを生成しましょう。

bundle exec rails generate rspec:install

このコマンドを実行すると、いくつかのファイルとディレクトリが生成されます。

create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb

それぞれのファイルについて説明しましょう。

.rspecファイル

.rspecファイルは、RSpecのコマンドライン設定を記述するファイルです。プロジェクト全体に適用される設定をここに書くことで、毎回コマンドでオプションを指定する必要がなくなります。

specディレクトリ

specディレクトリは、これから書いていくテストファイルを格納する場所です。Railsのデフォルトではtestディレクトリを使いますが、RSpecではspecディレクトリを使います。

spec_helper.rb

spec/spec_helper.rbは、RSpec自体の設定を行うファイルです。テストの実行方法や出力形式など、RSpecの基本的な動作を制御します。

rails_helper.rb

spec/rails_helper.rbは、RailsとRSpecを連携させるための設定ファイルです。Railsアプリケーションをテスト環境で動かすために必要な設定が含まれています。

.rspecファイルで設定を管理する

最後に、.rspecファイルを編集して、テスト結果の表示形式を見やすくしましょう。

.rspecファイルを開くと、以下のような内容になっています。

--require spec_helper

ここに、--format documentationという行を追加してください。

--require spec_helper
--format documentation

この設定により、テストを実行したときの結果が、より詳細で読みやすい形式で表示されるようになります。デフォルトでは、テストが成功したか失敗したかを「.」や「F」で表示しますが、documentation形式では、各テストの説明文が表示されるため、どのテストが実行されたかが一目でわかります。

まとめ

本章では、新しいRailsプロジェクトを作成し、RSpecを導入する手順を学びました。以下の内容を理解できたことと思います。

  • bundle initを使ったプロジェクトの初期化方法
  • Railsのインストールと新規プロジェクトの作成手順
  • --skip-testオプションを使ってMiniTestをスキップする理由
  • RSpecをGemfileに追加してインストールする方法
  • rails generate rspec:installで生成される各ファイルの役割
  • .rspecファイルを使った設定管理の基本

これで、RailsプロジェクトでRSpecを使ったテスト開発を始める準備が整いました。次の章では、実際にモデルのテストを書きながら、RSpecの基本的な使い方を学んでいきましょう。

このセクションは有料サブスクリプションへの登録、またはログインが必要です。完全なコンテンツにアクセスするには、料金ページ(/pricing)をご覧ください。購入済みの場合は、ログインしてください。

Basicプランでより詳しく学習

この先のコンテンツを読むにはBasicプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。

作成者:とまだ
Previous
Rails のモデルをテストしよう