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になります。
下記はパスするテストを実行した結果です。
そして下記は、期待値と実際の値が異なるコードを書き、失敗するテストを実行した結果です。
他にも便利な機能たくさんあるようです。
参考