2

期待値と比較する前にオブジェクトをハッシュに変換するマッチャーを作成しようとしています (キーが文字列またはシンボルであるという事実を気にせずに 2 つのハッシュを比較したいとします)。

これを行うマッチャーを簡単に定義できます

RSpec::Matchers.define :my_matcher do |content|
    match { |to_match| my_hash_conversion(to_match) == my_hash_conversion(content)
    diffable
end

diffable2 つのオブジェクトが一致しない場合、rspec が 2 つのオブジェクトの差分を表示するように追加します。ただし、元のオブジェクトの差分ではなく、変換されたオブジェクトの差分を表示したいですか?

Rspec のどこかに Differ クラスと diff_with_hash 関数があるのを見ましたが、使い方がわかりません (実際には文書化されていないため)。

4

2 に答える 2

-1

ブロックを使用してくださいfailure_message_for_should:-

failure_message_for_should do |actual|
  "expected: #{expected} \n     got: #{actual}"
end

次に.to_hash、あなたが見る必要があるもの。

于 2012-11-07T11:32:02.413 に答える