リファレンス Test::Unit
(2006.11.11更新。RubyUnit (RUNIT) からTest::Unitへ変更。)
リファレンスマニュアルの記述で不十分なところがあるので、作ってみた。
モジュール Test::Unit::Assertions
各種アサーションのメソッドを定めるモジュール。
定数
UncaughtThrowシングルトンメソッド
- use_pp = boolean_value
- pretty-printerを使うかどうか設定する。
インスタンスメソッド
下記のメソッドは、assert_*() の「*」がパスしたときは何も起こらない。テストに失敗したときはAssertionFailedErrorが発生する。
- assert(boolean, message = nil)
- ブロックを渡すとエラーになる。booleanが真ならpass.
- assert_block(message = "assert_block failed.") {...}
- blockの結果が真ならpass
- assert_equal(expected, actual, message=nil)
- expected == actualが真ならpass。expectedの==メソッドが使われる。
- assert_in_delta(expected_float, actual_float, delta, message="")
- expected_float, actual_float, deltaは、実数(かto_fメソッドを持つ)でなければならない。deltaは非負でなければならない。(expected_float.to_f - actual_float.to_f).abs <= delta.to_f ならpass.
- assert_instance_of(klass, object, message = "")
- klassがクラスではないときはエラー。object.instance_of?(klass) が真ならpass。
- assert_kind_of(klass, object, message="")
- klassがモジュール(またはクラス)ではないときはエラー。object.kind_of?(klass) が真ならpass。
- assert_match(pattern, string, message="")
- string =~ pattern が真ならpass。patternが文字列の場合は、内部でRegexpオブジェクトに変換される。
- assert_nil(object, message="")
- nil == object が真ならpass
- assert_no_match(regexp, string, message = "")
- regexpは正規表現オブジェクトでなければならない。regexp !~ string が真ならpass.
- assert_not_equal(expected, actual, message="")
- expected != actualが真ならpass
- assert_not_nil(object, message="")
- !object.nil? が真ならpass
- assert_not_same(expected, actual, message="")
- オブジェクトが同一ではないか。!actual.equal?(expected) が真のときにパス。
- assert_nothing_raised(exception [, ...] [, message]) {...}
- ブロックを実行し、例外が発生しなければpass. exception, ... の例外が発生すればテストに失敗、それ以外の例外が発生すればその例外があがる。
- assert_nothing_thrown(message="") {...}
- ブロックを実行し、何もthrowされなければpass.
- assert_operator(object1, operator, object2, message="")
- operatorはシンボルか文字列(to_strメソッドを持つ)でなければならない。object1.__send__(operator, object2) が真ならpass.
- assert_raise(exception [, ...] [, message]) {...}
- ブロックを実行して、exception, ... のいずれかの例外が発生したらpass
- assert_raises(exception [, ...] [, message]) {...}
- deprecated (非推奨). assert_raise() を使用してください。
- assert_respond_to(object, method, message="")
- methodはシンボルまたは文字列(to_strメソッドを持つオブジェクト)でなければならない。object.respond_to?(method)が真であればpass.
- assert_same(expected, actual, message="")
- オブジェクトの同一性を確認する。actual.equal?(expected) が真ならpass
- assert_send(send_array, message="")
- send_arrayは配列でなければならない。その値は、レシーバ, メソッド名 [, 引数...] となる。send_array[0].send_array[1](send_array[2], ...) が真ならpass.
- assert_throws(expected_symbol, message="") {...}
- expected_symbolはシンボルでなければならない。expected_symbol がブロック内でthrowされればpass.
- build_message(head, template=nil, ...)
- テストに失敗したときのメッセージを生成する。
- flunk(message = "Flunked")
- 常に失敗する。
クラス Test::Unit::TestCase
テストケースを記述するためのスーパークラス。サブクラスにてtest*() メソッドを追加し、setup, teardown は(必要があれば)オーバーライドする。Rubyのリフレクション機能によって、test*() メソッドが順に実行される。
TestCase派生クラスを定義するファイルを実行すると、そのテストだけ行える。--helpでコマンドラインオプションが表示される。
$ ruby tc.rb --help
Test::Unit automatic runner.
Usage: tc.rb [options] [-- untouched arguments]
-r, --runner=RUNNER Use the given RUNNER.
(c[onsole], f[ox], g[tk], g[tk]2, t[k])
-n, --name=NAME Runs tests matching NAME.
(patterns may be used).
-t, --testcase=TESTCASE Runs tests in TestCases matching TESTCASE.
(patterns may be used).
-v, --verbose=[LEVEL] Set the output level (default is verbose).
(s[ilent], p[rogress], n[ormal], v[erbose])
-- Stop processing options so that the
remaining options will be passed to the
test.
-h, --help Display this help.
Deprecated options:
--console Console runner (use --runner).
--gtk GTK runner (use --runner).
--fox Fox runner (use --runner).
Superclass
ObjectIncluded Modules
Test::Unit::Assertions Test::Unit::Util::BacktraceFilter定数
FINISHED STARTEDシングルトンメソッド
suiteインスタンスメソッド
- ==
- default_test
- method_name
- name
- run
- setup
- default_test
- サブクラスでオーバーライドする。各テストメソッドが呼び出される前に呼び出される。
- size
- teardown
- サブクラスでオーバーライドする。各テストメソッドが戻ったあとに(例外が発生した場合でも)必ず呼び出される。
- to_s