ちなみに

火曜日の空は僕を押しつぶした。

RSpecで独自のマッチャを定義するもっとも簡単な方法

RSpecでテストを書いていてよく

hoge.instance_variable_get(:@piyo).should == 'hehehe'

とか書きますよね

毎回indtance_variable_getを書くのが面倒なのでマッチャにしておくと簡単にテストできます

Rspec::Matcher.define :be_in do |name, val|
  match do |klass|
    klass.instance_variable_get("@#{name}").should == val
  end
end

be_inというマッチャを定義して、インスタンス変数の取得から比較までをくるんで置きます
ついでに@hogehogeと書かなくて良いようにしています

これでテストからは以下のように使えます

hoge.should be_in(:piyo, 'hehehe')

エラーメッセージなど、もっと細部までこだわりたい場合は公式のドキュメントに詳しく書いてあるので参照してください
http://rspec.rubyforge.org/rspec/1.2.9/classes/Spec/Matchers.html


# このマッチャの良い名前が思いつかないので良い案があれば教えてください