令人困惑的 RSpec 哈希匹配差异
Confusing RSpec hash match diff
我正在使用 RSpec match 匹配器来检查哈希是否包含预期值。当散列的一个键不匹配时,所有动态(a_string_starting_with
,等)值都显示为不匹配。当您尝试匹配更大的哈希值时,它尤其会让人分心。我想知道是否有另一种方法检查散列,所以只有真正不匹配的值才会出现在 diff 中。
这是一个示例,其中 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 的建议类似。
我正在使用 RSpec match 匹配器来检查哈希是否包含预期值。当散列的一个键不匹配时,所有动态(a_string_starting_with
,等)值都显示为不匹配。当您尝试匹配更大的哈希值时,它尤其会让人分心。我想知道是否有另一种方法检查散列,所以只有真正不匹配的值才会出现在 diff 中。
这是一个示例,其中 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 的建议类似。