全てのassertにおいて、失敗した場合は(指定した場合は)最後の引数の文字列をエラー時に表示する
assert(test, message = nil)
testが真であることを確認
assert_equal(expected, actual, message = nil)
assert_not_equal(expected, actual, message = “”)
expected と actualが一致することを確認
assert_no_match(regexp, string, message = “”)
検証する文字列 string の中に正規表現 regexp に一致するものがないことを確認
assert_nil(object, message = “”)
assert_not_nil(object, message = “”)
objectがnilであることを確認
assert_not_same(expected, actual, message = “”)
expectedとactualのオブジェクトが同一のものであること確認
Object#equal?の真偽によって判定
assert_raised(message = “”) { … }
assert_raised(klass1, klass2, …, message = “”) { … }
assert_nothing_raised(message = “”) { … }
assert_nothing_raised(klass1, klass2, …, message = “”) { … }
例外が発生されることの確認
klass1等が指定されている場合は、その指定された例外が発生することを確認
assert_thrown(message = “”) { … }
assert_nothing_thrown(message = “”) { … }
throwの発生を確認
build_message(head, template = nil, *arguments)
?使い方不明
[PARAM] head:
templateから作成するメッセージの前に表示する文字列を指定します。
[PARAM] template:
作成するメッセージのテンプレートを文字列で指定します。
[PARAM] arguments:
template 内の ‘?’ を置き換えるオブジェクトを配列で指定します。
[RETURN]
作成したメッセージをTest::Unit::Assertions::AssertionMessageのインスタンスで返します
assert_block(message = nil) { … }
自作assertionの作成用関数
ブロック内の戻り値が真であることを確認
mu_pp(obj)
objを読みやすい形に表示する(んだそう。。。)
まとめ
- もし小さなプログラムに取り組んでいるなら、型通りのディレクトリ構造に頭を悩ましてはいけない。スクリプトがライブラリとしてロードでき、実行ファイルとして実行できるよう、お決まりの構文を使えば良い。
- もしアプリケーションが大きければ、test/test_helpers.rbファイルにすべてのテストに必要な決まり文句やサポートコードを集めて重複をなくそう。
- rezuire File.dirname(__FILE__), ‘test_helpers’
- もしコードが複雑なことをたくさんしているように見えて、Test::Unitの組み込みアサーションでは間に合わないなら、単純なassert_block関数を使って独自のアサーションを作ろう
参考リンク
http://doc.ruby-lang.org/ja/1.9.2/class/Test=3a=3aUnit=3a=3aAssertions.html
http://doc.okkez.net/191/view/method/MiniTest=Assertions/i/assert
http://ruby-doc.org/stdlib-1.9.3/libdoc/test/unit/rdoc/Test/Unit/Assertions.html
コメント