RSpecのマッチャについて
参考:https://qiita.com/jnchito/items/2e79a1abe7cd8214caa5
マッチャ(matcher)とは
マッチャ(matcher)は「期待値と実際の値を比較して、一致した(もしくは一致しなかった)という結果を返すオブジェクト」のこと。
1 2 |
|
eq
やinclude
がマッチャにあたります。
マッチャは自分自身に定義されている検証ルールに従って、実際の値(1 + 2 や [1, 2, 3])と期待値(3 や 2)を比較し、ルールに合致しているかどうかを判断します。
to / not_to / to_not
「~であること」を期待する場合はto
を使う。
1 |
|
反対に「~ではないこと」を期待する場合はnot_to
もしくはto_not
を使う。
英語を使ってテストを作っているときに読みやすい方を使えば良いので、日本語を使ってテストを作っているときはnot_to
などに統一するとよい。
1 2 3 |
|
to
やnot_to
自体はマッチャではない。
to
やnot_to
はマッチャの実行結果を受け取って、テストをパスさせるか否かを判断するRSpecのメソッド。
eq
期待値と実際の値が「等しい」かどうかを検証する場合はeq
を使う。
1 |
|
be
be
は等号・不等号と組み合わせて、値の大小を検証するときによく使われるマッチャ。
1 |
|