Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > minitest/unitライブラリ
ユニットテストを行うためのライブラリです。
minitest/unit は以下のように使います。
テスト対象のソース (foo.rb) を用意します。
class Foo def foo "foo" end def bar "foo" end end
次にユニットテスト (test_foo.rb) を書きます。 テストを実行するメソッド (テストメソッド) の名前はすべて "test" で始まる必要があります。 テストメソッドが実行される前には setup メソッドが必ず実行されます。 テストメソッドが実行された後には teardown メソッドが必ず実行されます。
minitest/unit を Kernel.#require しただけではテストが自動実行されません。
require 'minitest/unit' require 'foo' MiniTest::Unit.autorun class TestFoo < MiniTest::Unit::TestCase def setup @foo = Foo.new end # teardown はあまり使わない def teardown @foo = nil end def test_foo assert_equal "foo", @foo.foo end def test_bar assert_equal "bar", @foo.bar end end
または MiniTest::Unit.autorun を省略して以下のように書くこともできます。
require 'minitest/unit' require 'minitest/autorun' require 'foo' # 以下略
テストを実行するには上で用意した test_foo.rb を実行します。 デフォルトではすべてのテストが実行されます。
$ ruby test_foo.rb Loaded suite test_foo Started F. Finished in 0.000940 seconds. 1) Failure: test_bar(TestFoo) [test_foo.rb:20]: Expected "bar", not "foo". 2 tests, 2 assertions, 1 failures, 0 errors, 0 skips
test_bar だけテストしたい場合は以下のようなオプションを与えます。
$ ruby test_foo.rb -n test_bar Loaded suite test_foo Started F Finished in 0.000820 seconds. 1) Failure: test_bar(TestFoo) [test_foo.rb:20]: Expected "bar", not "foo". 1 tests, 1 assertions, 1 failures, 0 errors, 0 skips
コンソールを使った testrunner のみ提供されています。 またヘルプを表示することもできません。
詳細を表示します。
指定されたテストメソッドを実行します。テストメソッドの指定に正規表現も使えます。
上述のとおり、MiniTest::Unit.autorun や require 'minitest/autorun' をテストコードに 明示的に書かなかった場合は、単にそのテストファイルを実行しても何も起こりません。
テストメソッド実行中に例外が発生した。
アサーションに失敗した。
テストメソッド内で MiniTest::Assertions#skip を呼び出した。
細かい違いはいくつかありますが、移行のためにしなければならないことは特にありません。 require 'test/unit' している場合は互換レイヤーが読み込まれ以前の test/unit との互換性が確保されます。
そうではなくて require 'minitest/unit' する場合は、テストクラスの定義時に親クラスを MiniTest::Unit::TestCase にしなければなりません。
このライブラリは 2.2.0 で削除されました。2.2.0 以降では以下を RubyGems でインストールして利用してください。.gem ファイルはソースコードにも同梱 されています。
MiniTest::Unit | ユニットテストで使用する様々なメソッドを定義しているクラスです。 |
MiniTest::Unit::TestCase | テストの基本単位(あるいは「テスト本体」)を表すクラスです。 |
MiniTest | minitest/unit で使用するクラスやモジュールを定義しているモジュールです。 |
MiniTest::Assertions | 各種 assert メソッドを提供します。 |
MiniTest::Assertion | アサーションに失敗した時に発生する例外です。 |
MiniTest::Skip | MiniTest::Assertions#skip を呼び出した時に発生する例外です。 |
minitest/autorun | このファイルを Kernel.#require するとテストが test/unit と同じように自動実行されます。 |