Ruby/Rubyの基礎知識

RSpecによるRubyプログラムの単体テスト(2ページ目)

RubyのテストライブラリであるRSpecを用いてコードのテストを行う方法を解説します

橋本 拓也

執筆者:橋本 拓也

Rubyガイド

RSpecの文法

まず公式ページから最初のサンプルを引用します。

基本的にRSpecのコードはdescribe > it の階層構造となっており、これにaliasや分岐構造が生えているイメージです。これを自然言語風に直すと

"Describe an order."

"It sums the prices of its line items."

と、テスト対象コードの実行結果を文章で表しているかのように読み下すことができます。

実行されるテストケースは、 itブロックの中で「予期(expect)する実行結果」と「実際の(actual)実行結果」に対して expect(<target>).to <matcher> <actual> と書きます。

matcher

上述のmatcherについて、少し補足説明をします。expect(...).to あるいは expect(...).not_to のあとには様々なmatcherが利用可能です。

Built in matchers - RSpec Expectations - RSpec - Relish

上記サイトに詳しいですが、代表的なものをいくつか取り出すと

  • expect(actual).to be_truthy
  • expect(actual).to be_falsey
  • expect(actual).to be_nil
  • expect(actual).to be_empty
  • expect(actual).to be < 1000
  • expect(actual).to eq 1000
  • expect(actual).to be > 1000
  • expect(actual).to be_a(String)
  • expect(actual).to raise_error
  • expect(actual).to include(1,2,3)

などがあります。過去バージョンで使われていたbe_trueおよびbe_falseはそれぞれbe_truthybe_falseyに置き換えられていることに注意してください。

他に、expectにブロックを渡して「ブロックの実行が何を変えるか」というchangeマッチャーもあります。

次のページではRSpecを実行する方法を解説します。

  • 前のページへ
  • 1
  • 2
  • 3
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます