0
2

More than 3 years have passed since last update.

【Ruby】minitestを使う方法

Last updated at Posted at 2019-11-06

概要

アウトプット用に、学習した内容を紹介していきます。
本日の内容はRubyにおける単体テストのためのライブラリ、minitestについてです。

環境

Mac OS Mojave 10.14.6
Ruby 2.5.3
エディタ VSCode

minitestとは

minitestとは上記の通り、単体テスト(プログラムの中で個々の機能が正しく動作しているか検証する)のためのライブラリです。
今回は'hello'という文字列を返すメソッドを持つ以下のクラスをテストしてみます。

Hello.rb
class Hello
  def hello
    return 'hello'
  end
end

これに対するテストプログラムは以下のようになります。

TestHello.rb
require 'minitest/autorun'
require_relative 'Hello.rb'

class TestHello < Minitest::Test
  def setup
    @hello = Hello.new
  end

  def test_hello
    assert_equal 'hello', @hello.hello
  end
end

require 'minitest/autorun'で、プログラム実行時にテストが自動実行されるようになります。
require_relativeでテスト対象のファイルを相対パスで指定します。今回は同じディレクトリにHello.rbを置いていたためファイル名のみとなっています。

またその下、TestHelloはMinitest::Testを継承したテストクラスです。ここにテストの内容などを記述していきます。
setupメソッドでは、テスト対象であるHelloクラスのインスタンスを作成します。
test_helloでは、assert_equal (自身が期待する実行結果) (テスト対象を実行して実際に返ってくる結果)という形で記述します。これにより期待される値が返ってきたかどうか比較され、そのテスト結果が出力されます。

結果

$ ruby TestHello.rb 
Run options: --seed 42144

# Running:

.

Finished in 0.000922s, 1084.5987 runs/s, 1084.5987 assertions/s.

1 runs, 1 assertions, 0 failures, 0 errors, 0 skips

無事成功しました。
ここでfailuresが出た場合は期待した結果と実行結果が異なっており、errorsが出た場合は例外が発生しています。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2