ruby - 如果哈希数组具有属性/值对,如何编写 rspec 测试

标签 ruby rspec

给定一个散列数组,我想检查每个散列是否包含特定的键和值。以下无效:

      it { expect(some_array).to all( have_attributes(:some_key => 'some_value') ) }

我无法从匹配错误中看出它为什么不起作用,但我认为这与 have_attributes 对输入参数或环境的期望有关。

最佳答案

按如下方式制作自定义匹配器:

RSpec::Matchers.define :have_member_with_value do |expected_key, expected_value|
  match do |actual|
    actual[expected_key] == expected_value
  end
end

用法:

it { expect(some_array).to all( have_member_with_value(:some_key, "some_value") ) }

遗憾的是,我不确定为什么问题中的方法不起作用。

关于ruby - 如果哈希数组具有属性/值对,如何编写 rspec 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57081613/

相关文章:

ruby-on-rails - 不兼容的库版本 : nokogiri. bundle 需要 8.0.0 或更高版本,但 libiconv.2.dylib 提供 7.0.0 版本

ruby-on-rails - 有没有办法强制 RSpec 显示中间结果?

ruby-on-rails - 为什么自动测试有时会在失败后立即重新运行所有规范?

ruby-on-rails - 在另一个 Controller 的显示操作中将多步表单向导的第一步呈现为部分

ruby - 如何拆分角色并保持值(value)

ruby-on-rails - 使用 Ruby on Rails 的 PostgreSQL 用户

ruby-on-rails - 具有 Multi-Tenancy 的 RSpec - 为什么这个简单的测试失败了?

mysql - 在 64 位 ruby​​ 和 64 位 Windows 上安装 ruby​​ on Rails 的 mysql2 扩展

ruby-on-rails - 在没有 Rails 的情况下使用 ActiveModel 时的 I18n 弃用警告

ruby-on-rails-3 - 使用 Factory_Girl 设置嵌入式 Mongoid 模型