Rails6にrspecを導入する方法

RSpecは、Ruby on Railsでテストを作成するためのテストフレームワークです。

以下は、Ruby on Rails 6にRSpecを導入する方法です。

RSpecをインストールする

Gemfileに以下の行を追加して、RSpecをインストールします。

group :development, :test do
  gem 'rspec-rails'
end

追加したら、bundle installコマンドを実行して、新しいGemをインストールします。

$ bundle install

RSpecを初期化する

RSpecを初期化するには、次のコマンドを使用します。

$ rails g rspec:install

これにより、RSpecの基本的な構成が生成されます。specディレクトリに、rails_helper.rbとspec_helper.rbという2つのファイルが作成されます。これらは、RSpecがRailsアプリケーションで実行されるための必要な設定を行うために使用されます。

テストを作成する

RSpecを使用してテストを作成するには、specディレクトリにspecファイルを作成する必要があります。以下は、BooksControllerのインデックスアクションをテストするspecファイルの例です。

# spec/controllers/books_controller_spec.rb
require 'rails_helper'

RSpec.describe BooksController, type: :controller do
  describe "GET #index" do
    it "returns http success" do
      get :index
      expect(response).to have_http_status(:success)
    end
  end
end

RSpec.describeメソッドは、テスト対象のクラスを指定します。この例では、BooksControllerが指定されています。type: :controllerを指定することで、コントローラスペックを作成できます。

RSpec.describeブロックの中に、テストを記述します。describeブロック内に、itブロックを使用して、テストを実装します。この例では、BooksControllerのインデックスアクションがHTTPステータスコード200を返すことをテストしています。

テストを実行する

テストを実行するには、以下のコマンドを使用します。

$ bundle exec rspec

RSpecは、specディレクトリ内のすべてのテストを実行します。テストが失敗すると、エラーメッセージが表示されます。成功した場合は、すべてのテストがパスし、結果が表示されます。