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 | ○ | actual <= expected |
| 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 のマッチャ 一覧」をご参照下さい!
公式リファレンス
Special Thanks
File: README — Documentation for rspec-expectations (2.12.0)
変更来歴
12/03 10:00 coverの重複と意味・機能が間違っていたので修正
01/16 23:10 rails-rspecとshoulda-matchersのマッチャ一覧の紹介を追加
