给定一个散列数组,我想检查每个散列是否包含特定的键和值。以下无效:
it { expect(some_array).to all( have_attributes(:some_key => 'some_value') ) }
我无法从匹配错误中看出它为什么不起作用,但我认为这与 have_attributes 对输入参数或环境的期望有关。
最佳答案
按如下方式制作自定义匹配器:
RSpec::Matchers.define :have_member_with_value do |expected_key, expected_value|
match do |actual|
actual[expected_key] == expected_value
end
end
用法:
it { expect(some_array).to all( have_member_with_value(:some_key, "some_value") ) }
遗憾的是,我不确定为什么问题中的方法不起作用。
关于ruby - 如果哈希数组具有属性/值对,如何编写 rspec 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57081613/