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