トップ 最新 追記

Catra's Diary

2005|01|02|03|05|06|07|10|
2006|05|07|09|10|11|
2007|06|07|08|
2008|01|02|07|09|11|12|
2009|06|
2010|03|07|
2011|01|
2013|05|

2010-07-16 [Friday]

_ RSpec の Matcher

概要

actual (実際に状態を確認する対象)で使用可能なメソッドを呼び出して、成否を判断する。 Matcher に使用するメソッドと、actual で呼び出されるメソッドは以下のように関係づけられる。

  • Matcher: be_〜 → actual で呼び出すメソッド: 〜?

    例えば、be_nil という名前の Matcher を指定すると、actual で呼び出す nil? を使用して判断する。 より英語として読みやすいように、be_〜、be_a_〜、be_an_〜 という指定の仕方が出来る。 (例えば be_an_instance_of(Klass) → instance_of?(Klass) という指定が可能)

    定義場所:

    lib/spec/matchers/be.rb # be_true(), be_false, be_nil, be など
    lib/spec/matchers/be_close.rb # be_close
    lib/spec/matchers/be_instance_of.rb # be_(an_)?instance_of
    lib/spec/matchers/be_kind_of.rb # be_(a_)?kind_of
    lib/spec/matchers/method_missing.rb  # ここ経由で Spec::Matcher::BePredicate (be.rb) から他の be_〜 形式が呼び出される。
  • Matcher: have_〜 → actual で呼び出すメソッド: has_〜?

    be_〜 と同様に名前を読み替えて、呼び出すメソッドで確認する。

  • Matcher: ==, <, >, <=, >=, ===, =~

    lib/spec/matchers/be.rb で定義している Spec::Matcher::BeComparedTo を使用して、 それぞれ定義されているメソッドを使用して expected と比較する。!= は使用不可(should_not == expected を使う)。

  • その他 Matcher → カスタム Matcher

定義済みの Matcher

参照先

gem server 実行後の RDoc 参照先


トップ 最新 追記