Chiroru's Diary

日々の学びをちょこちょこメモしていきます

test-unitについて

自動テストのプラクティスで、引き続きtest-unitについて学んだのでまとめておきます。

【目次】

test-unitとは

ユニットテスト(単体テスト)を行うためのRubyのライブラリになります。 Ruby2.2.0以降、本体にバンドルされたもので、テスティングフレームワークのコア機能を提供します。 2.2.0以降は、このtest-unitとMinitestがRubyの標準テスティングフレームワークになっているようです。

が、下記の記事によればRspecやMinitestの方が、Rubyのテスティングフレームワークとして実際利用されているようでした。

参考

実際に使ってみる

Ruby標準のテスティングフレームワークで手軽にテストコードを書く方法 を参考に早速試してみます。

サンプルコード↓

require "test/unit"

class Sample
  def self.greeting
    "Hello, world!"
  end
end

class TestSample < Test::Unit::TestCase
  def test_greeting
    assert_equal "Hello, world!", Sample.greeting
  end
end

Test::Unit::TestCaseを継承したクラス(今回であればTestSample)に、test_xxxメソッド(今回であればtest_greeting)を定義すると、そのメソッドをテストすることができます。

assert_equal (期待値), (実際の値)で、期待値=実際の値になればテストはパスし、そうでなければ失敗します。 原則として、一つのメソッドに一つのassertになります。

下記はパスするテストを実行した結果です。

f:id:chiroru_memo:20200730180100p:plain
GREEN
そして下記は、期待値と実際の値が異なるコードを書き、失敗するテストを実行した結果です。
f:id:chiroru_memo:20200730180128p:plain
RED

他にも便利な機能たくさんあるようです。

参考