今回はRubyのテスティングフレームワークであるRSpecについて初心者向けに解説したいと思います。Rubyには他にも様々なテスティングフレームワークがありますが、使われている割合としてはRSpecが一番です。この記事を通して、RSpecの概要についておさらいしていきましょう。
テスティングフレームワークとは
テスティングフレームワークとは、バグチェック(= 動作確認)の実行と検証を行うテストコードを自動化してくれるものになります。言い換えると、テスティングフレームワークとはテストを簡単に実装することができるフレームワークになります。
ソフトウェアテストの自動実行プログラムの作成、テスト結果の自動判定や自動集計などの機能を提供するソフトウェアフレームワークのこと。
テストの意義とその必要性
テストの意義とその必要性については以下の記事にまとめています。

Rubyにおけるテスティングフレームワーク
Rubyにおけるテスティングフレームワークは主には以下の3つであり、使用されている割合としてはRSpec → Minitest → test-unitの順番になります。
- RSpec
- Minitest
- test-unit
ちなみに、EverydayRailsの翻訳者である伊藤淳一さんが以前にTwitterでアンケートを実施した結果でもRSpecが大半でした。
【Rubyプログラマ向けアンケート】
結構ベタなテーマですが、あらためてアンケートしてみようと思います。
Rubyであなたが一番よく使っているテスティングフレームワークは何ですか?
Which testing framework do you use most in Ruby?— Junichi Ito (伊藤淳一) (@jnchito) March 7, 2018
RSpecとは
RSpecとは、Rubyにおけるテスティングフレームワークの1つで、Ruby開発者の間で最も使われている言語になります。
RSpecのRはRuby、Specはテストコードのことを表しています。
特徴としてRSpecはRuby言語を元に作成されているため、Rubyをある程度理解している人であれば簡単に実装することができるというメリットがあります。
RSpecの導入方法
ここからはRSpecの導入方法について見ていきます。
始めにRSpecを利用するためのGem「rspec-rails」をインストールします。Gemfileのdevelopment環境とtest環境にgem 'rspec-rails'
を追記しましょう。
group :development, :test do
# 省略
gem 'rspec-rails'
end
その後、ターミナルからbundle install
を実行します。
% bundle install
続いてRSpecの設定です。
以下のコマンドをターミナルに打ち込み、RSpec用の設定ファイルを作成しましょう。「.rspec
」「spec
」「spec_helper.rb
」「rails_helper.rb
」の4つのファイルが生成されれば成功です。
% rails g rspec:install
> create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
先ほど生成された「.rspec」に下記の記述を追記しましょう。
--require spec_helper
--format documentation
続いて、rails generate...
コマンド実行時にRSpecファイルが生成されるよう設定します。デフォルトの設定ではrails generate...
コマンド実行時はMinitestのspecファイルが生成されます。
# config/application.rb
require_relative "boot"
require "rails/all"
Bundler.require(*Rails.groups)
module SimplecovApp
class Application < Rails::Application
config.load_defaults 7.0
# ここから
config.generators do |g|
g.assets false
g.skip_routes false
g.test_framework :rspec,
controller_specs: false, # コントローラのspecファイルは生成しない
view_specs: false, # ビューのspecファイルは生成しない
helper_specs: false, # ヘルパーのspecファイルは生成しない
routing_specs: false # ルーティングのspecファイルは生成しない
end
# ここまでを追記
end
end
ここまでできたら、RSpecが正常に動くかどうか確かめてみます。ターミナルでテストを動かすコマンド「% bundle exec rspec
」を実行しましょう。
% bundle exec rspec
以下のような結果が表示されれば成功です。
No examples found.
Finished in 0.00031 seconds (files took 0.19956 seconds to load)
0 examples, 0 failures
まとめ
- テスティングフレームワークとは、テストを簡単に実装することができるフレームワークのこと
- Rubyにおけるテスティングフレームワークは主に3つあり、使用されている割合としては「RSpec→Minitest→test-unit」の順になる
- RSpecとは、Rubyにおけるテスティングフレームワークの1つでRuby開発者の間で最も使われている言語である
- RSpecはRuby言語を元に作成されている
今回はRubyのテスティングフレームワークである「RSpec」について初心者向けに解説しました。RubyエンジニアであればRSpecの知識はマストになってくるので、この機会におさらいしておきましょう。