我有两个哈希表 h1
和 h2
,我想在 RSpec 中进行比较。
我想要检查在某些转换(我们称之为 f
)之后,h1
的元素是否与 h2
相同。也就是说,我想要验证对于 h1
中的每个键 k
,h1[k] == f(h2[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)).to be true
。 - onebreeh1
和h2
的角色。 - sawah2
具有与h1
不同的键,则无关紧要。这是您的意图吗? - sawa