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

标签 ruby rspec rspec-rails

我正在使用 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

Match diff

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

最佳答案

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

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

关于ruby - 令人困惑的 RSpec 哈希匹配差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69327477/

相关文章:

ruby-on-rails - rails : Automatically running failed tests

ruby-on-rails - 如何在另一个记录数组的开头添加一个记录数组?

ruby - $ GEM_HOME和$ GEM_PATH在旅客中设置错误

ruby-on-rails - rspec 中 Rails Runner 的环境问题

ruby-on-rails - 预期 true 会回应 true 吗?

ruby - 如何获取数字之间的特定点

ruby-on-rails - 使用 RSpec 测试用户身份验证

ruby-on-rails - 运行规范会抛出 "Mysql2::Error: Table ' test_db.xxx'不存在: TRUNCATE TABLE xxx

ruby - Rspec:弃用警告

ruby-on-rails - 无方法错误 : undefined method `new' for BigDecimal:Class