RSpecの標準マッチャー(matcher)の一覧を作ってみました。できるだけ一覧を見やすくして、開発の手助けになることを目指しています。
🚜 RSpecって何?
RSpecのベーシックな情報は以下がお勧めです。
「RSpec をもっと理解したかったので、まとめを作りました」に感動してRuby 1.9.3でやってみた! : 以前作ったものです。RSpecの導入の手助けになると思います。
改めて学ぶ RSpec : RSpec初歩からしっかり理解できるすばらしい記事です。
RSpec 簡潔に記述する(1) it ブロックを短く書く!
: 説明がすごくわかりやすくて勉強になります。
🐡 マッチャー一覧
マッチャー | not | 意味・機能 |
---|---|---|
== expected | ○ | actual == expected |
=~ /expression/ | ○ | actual =~ /expression/ |
be > expected | ○ | actual > expected |
be >= expected | ○ | actual >= expected |
be <= expected< td> | ○ | actual <= expected< td> => | =>
be < expected | ○ | actual < expected |
be(expected) | ○ | actual.equal?(expected) |
be_a_kind_of(expected) | ○ | actual.instance_of?(expected)[そのクラスがインスタンスか] |
be_an_instance_of(expected) | ○ | actual.instance_of?(expected) |
be_close(expected, delta) | ○ | actual == expected +/- delta |
be_false | ○ | actualがnil or falseのどちらかか? |
be_nil | ○ | actualがnilか? |
be_true | ○ | actualがnilでなくかつfalseでないか? |
be_within(delta).of(expected) | ○ | actual == expected +/- delta |
be_xxx | ○ | actual.xxx? |
cover(expected) | ○ | actual.cover?(expected) [expectedがactualの範囲内に含まれているか] 例: (1..10).should cover(3) #=> pass注: (Ruby >= 1.9 only) |
end_with(expected) | ○ | actual.end_with?(expected) |
eq(expected) | ○ | actual == expected |
eql(expected) | ○ | actual.eql?(expected) eql?の定義 |
equal(expected) | ○ | actual.equal?(expected) equal?の定義 |
expect { … }.to raise_error (ErrorClass=nil, msg=nil) |
○ | ErrorClass、文字列msgの例外を発生させる |
expect { … }.to throw_symbol (:symbol, :arg) |
○ | :symbol, 引数がargのsymbolがthrowされる |
have_xxx(:arg) | ○ | actual.has_xxx?(:arg) |
include(expected) | ○ | actual.include?(expected) |
match(/expression/) | ○ | actual =~ /expression/ |
start_with(expected) | ○ | actual.start_with?(expected) |
今回yieldingは省略しました。yielding については公式リファレンスをご参照下さい。
🎂 rails-RSpecのマッチャ一覧と便利機能
rails-RSpecのマッチャ一覧と便利機能の紹介は、拙作の「rails-rspecのマッチャ(matchers)、便利機能の解説」をご参照ください!
🐯 便利なshoulda-matchersのマッチャ一覧
便利なshoulda-matchersのマッチャ一覧の紹介は、拙作の「RSpecがさらに捗る shoulda-matchers のマッチャ 一覧」をご参照ください!
🐮 公式リファレンス
🏈 参考リンク
File: README — Documentation for rspec-expectations (2.12.0)
🐞 変更来歴
12/03 10:00 coverの重複と意味・機能が間違っていたので修正
01/16 23:10 rails-RSpecとshoulda-matchersのマッチャ一覧の紹介を追加