概要
rspec で hash を確認したいときに、eq matcher ではなく、include matcher を素直に使おうという記事です。
コード
{ hoge: 'fuga' }
という hash があるときに、これを eq で確認しようとすると、
it do
expect(subject).to eq { hoge: 'fuga' }
end
のようには書けません、{}がブロックと解釈されるからです。
なので eq を使うためには
it do
expected_hash = { hoge: 'fuga' }
expect(subject).to eq expected_hash
end
のように、hash を変数に入れなければなりません。
当たり前で記事にするまでもないかもしれませんが、
これでは面倒なのでinclude を使いましょう。
it do
expect(subject).to include(hoge: 'fuga')
end