RSpec で expect した時のログ
rspecでexpectするときに、「文字列が詰まった配列」を期待していたのですが、
- 期待と違う文字列が入ってた ("aaa"を期待してたのに"bbb"が入ってた)
- 期待してない文字列が入ってた (配列の要素数が増えてた)
ってことがあって、ログに出力されるdiff見方がよくわからなかったので整理してみました。
# test_spec.rb require 'rspec' expected_data = { match: "title", mismatch: "description" } got_data = { match: "title", mismatch: "description!!", added: "22" } describe 'てすと' do context '配列比較' do it 'できるかな' do expect(got_data).to eq(expected_data) end end end
で、結果が下記。
てすと 配列比較 できるかな (FAILED - 1) Failures: 1) てすと 配列比較 できるかな Failure/Error: expect(got_data).to eq(expected_data) expected: {:match=>"title", :mismatch=>"description"} got: {:match=>"title", :mismatch=>"description!!", :added=>"22"} (compared using ==) Diff: @@ -1,3 +1,4 @@ +:added => "22", :match => "title", -:mismatch => "description" +:mismatch => "description!!" # C:/spec/test_spec.rb:34:in `block (3 levels) in <top (required)>' Finished in 0.00554 seconds 1 example, 1 failure
- [無印] は取得値と期待値が一致してるもの。
- [+] は取得値
- [-] は期待値
- 取得値と期待値が異なるものは + が付いたものと - が付いたものが表示される
- [@@ -1,3 +1,4 @@] ってどういう意味なんだろう
きっとgitなどのソースコード管理ツールに慣れてる人はなんてこと無いんだろうなと思った。
[追記]
- RSpecじゃなくてdiffの基本的な見方の話じゃね?って教えてもらったので勉強になりました。m( )m
- http://d.hatena.ne.jp/kakurasan/20070610/p2
「@@」の付いている行は、テキストの違いが存在する領域(Hunk/テキストブロック)の始まりを示し、数字は修正前後のファイル内の該当する範囲を示す。