Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > test/unit/assertionsライブラリ > Test::Unit::Assertionsモジュール

module Test::Unit::Assertions

クラスの継承リスト: Test::Unit::Assertions

要約

各種の assert メソッドを提供するモジュールです。

Test::Unit::TestCase に include されて使われます。 test/unit の他のクラスとは独立して、提供されている assert メソッドだけを使うこともできます。 assert_block メソッドを使うことにより、新しい assert メソッドを加えることもできます。

assert が失敗した時は、例外 Test::Unit::AssertionFailedError を投げます。 各 assert メソッドの最後の引数 message はテストが失敗したときに表示される メッセージです。

目次

特異メソッド
use_pp=
インスタンスメソッド
assert assert_block assert_equal assert_in_delta assert_instance_of assert_kind_of assert_match assert_nil assert_no_match assert_not_equal assert_not_nil assert_not_same assert_nothing_raised assert_nothing_thrown assert_operator assert_raise assert_raises assert_respond_to assert_same assert_send assert_throws build_message flunk

特異メソッド

use_pp=(value)[permalink][rdoc]

出力に pp を使用するかどうかを指定します。偽を指定した場合は pp は require されません。

[PARAM] value:
pp を使用するかどうか。

インスタンスメソッド

assert(boolean, message = nil) -> ()[permalink][rdoc]

boolean が真ならパスします。

[PARAM] boolean:
検証するオブジェクトを指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。
assert_block(message = "assert_block failed.") { ... } -> ()[permalink][rdoc]

ブロックを実行し、その結果が真ならパスします。

新しい assert メソッドを定義する時にも使います。

def deny(boolean, message = nil)
  message = build_message message, '<?> is not false or nil.', boolean
  assert_block message do
    not boolean
  end
end
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。
assert_equal(expected, actual, message = nil) -> ()[permalink][rdoc]

expected == actual ならばパスします。

Test::Unit::Assertions#assert_sameとの違いに注意して下さい。

[PARAM] expected:
期待するオブジェクトを指定します。
[PARAM] actual:
検証するオブジェクトを指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。

[SEE_ALSO] Test::Unit::Assertions#assert_not_equal, Object#==

assert_in_delta(expected_float, actual_float, delta, message = "") -> ()[permalink][rdoc]

(expected_float.to_f - actual_float.to_f).abs <= delta.to_f が真ならパスします。

[PARAM] expected_float:
期待する実数値を指定します。
[PARAM] actual_float:
検証する実数値を指定します。
[PARAM] delta:
許容できる誤差を正の数で指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。
assert_instance_of(klass, object, message = "") -> ()[permalink][rdoc]

object が klass の直接のインスタンスであるなら、パスします。 Object#instance_of?も参照して下さい。

[PARAM] klass:
期待するクラスを指定します。
[PARAM] object:
検証するオブジェクトを指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。

Test::Unit::Assertions#assert_kind_of との違いに注意して下さい。

[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。
assert_kind_of(klass, object, message = "") -> ()[permalink][rdoc]

object.kind_of?(klass) が真ならパスします。

正確には、object が klass かそのサブクラスのインスタンスであるならパスします。 また、klass がモジュールである場合は、object が klass をインクルードしたクラスかそのサブクラスの インスタンスであるならパスします。

Test::Unit::Assertions#assert_instance_of との違いに注意して下さい。

[PARAM] klass:
期待するクラスかモジュールを与えます。
[PARAM] object:
検証するオブジェクトを指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。

[SEE_ALSO] Object#kind_of?

assert_match(pattern, string, message = "") -> ()[permalink][rdoc]

string =~ pattern が真ならばパスします。

[PARAM] pattern:
期待するパターンを文字列か正規表現で指定します。文字列を 指定した場合は内部で文字列そのものにマッチする正規表現に変換されます。
[PARAM] string:
検証する文字列を指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。

[SEE_ALSO] Test::Unit::Assertions#assert_no_match

assert_nil(object, message = "") -> ()[permalink][rdoc]

object が nil ならばパスします。

[PARAM] object:
検証するオブジェクトを指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。

[SEE_ALSO] Test::Unit::Assertions#assert_not_nil

assert_no_match(regexp, string, message = "") -> ()[permalink][rdoc]

regexp !~ string が真ならばパスします。

[PARAM] regexp:
マッチしないと期待するパターンを正規表現で指定します。
[PARAM] string:
検証する文字列を指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。

Test::Unit::Assertions#assert_match とは異なり regexp には正規表 現以外は指定できません。

assert_not_equal(expected, actual, message = "") -> ()[permalink][rdoc]

expected != actual ならばパスします。

[PARAM] expected:
同じものではないと期待するオブジェクトを指定します。
[PARAM] actual:
検証するオブジェクトを指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。

[SEE_ALSO] Test::Unit::Assertions#assert_equal

assert_not_nil(object, message = "") -> ()[permalink][rdoc]

object が nil でないならばパスします。

[PARAM] object:
検証するオブジェクトを指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。

[SEE_ALSO] Test::Unit::Assertions#assert_nil

assert_not_same(expected, actual, message = "") -> ()[permalink][rdoc]

!actual.equal?(expected) が真ならパスします。

[PARAM] expected:
期待するオブジェクトを指定します。
[PARAM] actual:
検証するオブジェクトを指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。

[SEE_ALSO] Object#equal?, Test::Unit::Assertions#assert_same

assert_nothing_raised(message = "") { ... }[permalink][rdoc]
assert_nothing_raised(klass1, klass2, ..., message = "") { ... }

ブロックを実行して例外が起きなければパスします。

ブロックを実行して発生した例外が klass1, klass2, ..., のいずれかのクラスの インスタンスである場合は、assert は失敗扱いとなり、Test::Unit::AssertionFailedError を投げます。そうでない場合は、エラー扱いとなり発生した例外を再び投げます。

[PARAM] klassX:
例外クラスを指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。
assert_nothing_thrown(message = "") { ... } -> ()[permalink][rdoc]

ブロックを実行して throw が起こらなければパスします。

[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。
assert_operator(object1, operator, object2, message = "") -> ()[permalink][rdoc]

object1.send(operator, object2) が真ならパスします。

[PARAM] object1:
検証するオブジェクトを指定します。
[PARAM] operator:
検証のための演算子(メソッド)を Symbol か to_str メソッドが使用できるオブジェクトで指定します。
[PARAM] object2:
検証するオブジェクトを指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。
assert_raise(message = "") { ... } -> object[permalink][rdoc]
assert_raise(klass1, klass2, ..., message = "") { ... } -> object

ブロックを実行して例外が発生し、その例外が klass1, klass2,... のいずれかのクラスのインスタンスならばパスします。

assert にパスした時は、実際に投げられた例外を返します。

[PARAM] klassX:
例外クラスを指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。
assert_raises(*args, &block) -> object[permalink][rdoc]

Test::Unit::Assertions#assert_raise のエイリアスです。

[PARAM] args:
Test::Unit::Assertions#assert_raise にそのまま渡します。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。

[SEE_ALSO] Test::Unit::Assertions#assert_raise

assert_respond_to(object, method, message = "") -> ()[permalink][rdoc]

object.respond_to?(method) が真ならパスします。

[PARAM] object:
検証するオブジェクトを指定します。
[PARAM] method:
検証するメソッドを Symbol か文字列で指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。

[SEE_ALSO] Object#respond_to?

assert_same(expected, actual, message = "") -> ()[permalink][rdoc]

actual.equal?(expected) が真ならパスします。

Test::Unit::Assertions#assert_equal との違いに注意して下さい。

[PARAM] expected:
期待するオブジェクトを指定します。
[PARAM] actual:
検証するオブジェクトを指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。

[SEE_ALSO] Object#equal?, Test::Unit::Assertions#assert_not_same

assert_send(send_array, message = "") -> ()[permalink][rdoc]

send_array[0].__send__(send_array[1], *send_array[2..-1]) が真ならパスします。

[PARAM] send_array:
検証するオブジェクトを [レシーバ、メソッド、メソッドの引数] で指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。
assert_throws(expected_symbol, message = "") { ... } -> ()[permalink][rdoc]

ブロックを実行して :expected_symbol が throw されたらパスします。

[PARAM] expected_symbol:
throw されると期待するシンボルを指定します。
[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
assert が失敗した時に発生します。
build_message(head, template = nil, *arguments)[permalink][rdoc]

テストが失敗したときに表示されるメッセージを作成します。

[PARAM] head:
templateから作成するメッセージの前に表示する文字列を指定します。
[PARAM] template:
作成するメッセージのテンプレートを文字列で指定します。
[PARAM] arguments:
template 内の '?' を置き換えるオブジェクトを配列で指定します。
[RETURN]
作成したメッセージをTest::Unit::Assertions::AssertionMessageの インスタンスで返します。

head は template の前に追加されます。template に指定した文字列に '?' が 含まれていた場合は、arguments に指定したオブジェクトでそれぞれ置き換え られます。

flunk(message = "Flunked") -> ()[permalink][rdoc]

常に失敗します。

ちゃんとしたテストを書くまでの間、テストを失敗させておきたい場合などに使います。

[PARAM] message:
assert が失敗した時に表示するメッセージを文字列で指定し ます。指定しなかった場合は表示しません。
[EXCEPTION] Test::Unit::AssertionFailedError:
常に発生します。