小编bra*_*bag的帖子

RSpec 的 contains_exactly 的哈希值是多少?

我需要验证哈希的内容,我惊讶地发现 RSpeccontain_exactly只适用于数组。理想的期望是:

expect(type.values.values).to contain_exactly(
  ONE: an_object_having_attributes(value: 'uno'),
  TWO: an_object_having_attributes(value: 'dos')
)
Run Code Online (Sandbox Code Playgroud)

基本要求是contain_exactly要求数组包含这些元素,并且哈希等效项必须仅包含指定的确切键/值对。

有很多解决方法都可以

  • include(key: value),但这允许其他键,我需要完全匹配。
  • expect(hash.keys).to contain_exactly(...)但这并不能验证键是否专门链接到值。
  • 无论如何使用contain_exactly(将哈希读取为元组[key, value])并基于子数组进行匹配,例如contain_exactly(a_collection_containing_exactly('ONE', an_object_having_attributes(value: 'uno')), ...)
  • 迭代哈希并根据预期输入将键与值进行匹配aggregate_failures

等等,但我最好奇是否有内置的 RSpec 方法可以做到这一点。

ruby testing rspec ruby-hash

0
推荐指数
1
解决办法
2505
查看次数

标签 统计

rspec ×1

ruby ×1

ruby-hash ×1

testing ×1