我有兩個散列h1
和h2
,我想在RSpec中進行比較。如何比較RSpec中的兩個哈希值?
我想檢查一下h1
的元素是否與h2
相同,然後進行一些轉換,我們將其稱爲f
。也就是說,我想驗證h1
,h1[k] == f(h2[k])
中的每個密鑰k
。
例如,如果在h2
所有值的兩倍大的h1
相應的值,然後我要檢查,對在H1每一個關鍵k
,h2[k] == h1[k] * 2
。
什麼是在RSpec中做到這一點的正確方法?目前我做:
h1 = ...
expect(
h2.all? { |k,v|
v == f(h1[k])
}
).to be true
但這似乎笨重。
我會創建一個輔助方法'equal?(other)'它可以進行計算 - 從這裏開始,'expect(h2.equal?(h1))。真實的' – onebree
您的問題具有很高的誤導性。你在你的解釋和代碼中轉換了'h1'和'h2'的角色。 – sawa
此外,您的描述(以及代碼)描述了匹配是一種方式,即,說明文本中的「h2」具有除「h1」以外的其他關鍵字並不重要。這是你的意圖嗎? – sawa