RSpec

【RSpec導入】RubyのテスティングフレームワークRSpecについて初心者向けにまとめてみた

RSpec

 

今回はRubyのテスティングフレームワークであるRSpecについて初心者向けに解説したいと思います。Rubyには他にも様々なテスティングフレームワークがありますが、使われている割合としてはRSpecが一番です。この記事を通して、RSpecの概要についておさらいしていきましょう。

今回はRSpecの導入手順までを解説しています。

テスティングフレームワークとは

テスティングフレームワークとは、バグチェック(= 動作確認)の実行と検証を行うテストコードを自動化してくれるものになります。言い換えると、テスティングフレームワークとはテストを簡単に実装することができるフレームワークになります。

ソフトウェアテストの自動実行プログラムの作成、テスト結果の自動判定や自動集計などの機能を提供するソフトウェアフレームワークのこと。

参考: テスティングフレームワーク(てすてぃんぐふれーむわーく)

テストの意義とその必要性

テストの意義とその必要性については以下の記事にまとめています。

RSpec
プログラミング開発におけるテストコードの意義について初心者向けに解説プログラミング開発におけるテストコードの意義について簡単に解説しています。テストコードのメリット・デメリットやその必要性、Railsにおけるテスティングフレームワークなどこの機会におさらいしておきましょう。...

Rubyにおけるテスティングフレームワーク

Rubyにおけるテスティングフレームワークは主には以下の3つであり、使用されている割合としてはRSpec → Minitest → test-unitの順番になります。

  1. RSpec
  2. Minitest
  3. test-unit

ちなみに、EverydayRailsの翻訳者である伊藤淳一さんが以前にTwitterでアンケートを実施した結果でもRSpecが大半でした。

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
「–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の知識はマストになってくるので、この機会におさらいしておきましょう。