令人困惑的 RSpec 哈希匹配差异

dos*_*stu 3 ruby rspec rspec-rails

我正在使用 RSpec匹配器来检查哈希是否包含预期值。当哈希的键不匹配时,所有动态(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
Run Code Online (Sandbox Code Playgroud)

匹配差异

我想知道我是否应该使用另一个匹配器。或者是否有任何自定义匹配器或宝石?

小智 5

问题在于 RSpec 当前使用的不同 gem,他们已经意识到了这个问题,尽管目前不存在修复,如这些票证所示:

票证中目前提出的解决方案之一与 Mosaaleb 的建议类似。