我正在使用 RSpec match匹配器检查哈希是否包含预期值。当散列的一个键不匹配时,所有动态(a_string_starting_with
等)值都显示为不匹配。当您尝试匹配更大的哈希值时,它尤其会让人分心。我想知道是否有另一种方法来检查散列,这样只有真正不匹配的值才会出现在差异中。
这是一个示例,其中 a
标记为红色,但值是正确的。
it 'matches' do
actual = {
a: 'test test',
b: 1,
c: 2,
}
expect(actual).to match(
a: a_string_starting_with('test'),
b: 0,
c: 2,
)
end
我想知道我是否应该使用另一个匹配器。或者是否有任何自定义匹配器或 gem?
最佳答案
这个问题是 RSpec 当前使用的不同 gem,他们已经意识到这个问题,尽管目前不存在修复,如这些票证所示:
- https://github.com/rspec/rspec-support/issues/365
- https://github.com/rspec/rspec-expectations/issues/1120
工单中目前提出的解决方案之一与 Mosaaleb 的建议类似。
关于ruby - 令人困惑的 RSpec 哈希匹配差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69327477/