ruby - 如何使用 Rspec 测试包含哈希数组的哈希中是否存在键

标签 ruby hash rspec

我有一个模型方法,它在执行时返回以下内容。

 {"data" => [
 {"product" => "PRODUCTA", "orders" => 3, "ordered" => 6, "revenue" => 600.0},
 {"product" => "PRODUCTB", "orders" => 1, "ordered" => 5, "revenue" => 100.0}]}

我想测试以确保第一个哈希中的“收入”存在,然后测试该值是否等于 600。

subject { described_class.order_items_by_revenue }

it "includes revenue key" do
  expect(subject).to include(:revenue)
end

我完全不知道如何使用 Rspec 进行测试。

最佳答案

RSpec 允许您使用 have_key谓词匹配器通过 has_key? 验证键的存在,如下所示:

subject { described_class.order_items_by_revenue }

it "includes revenue key" do
  expect(subject.first).to have_key(:revenue)
end

关于ruby - 如何使用 Rspec 测试包含哈希数组的哈希中是否存在键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33379775/

相关文章:

database - 数据库表中的键值是否应该进行哈希处理?

Ruby 返回意外的 nil

ruby - Rspec检查是否调用了一个方法而不调用该方法

Ruby 将页面 Mechanize 为字符串

ruby - 当我将参数传递给我的脚本时,使用 gets() 会出现 "No such file or directory"错误

ruby - 在 Ruby 中返回具有修改值的散列

Python:集合如何工作

ruby-on-rails - "Rake spec"大多数测试失败,但 "rails s"在 Diaspora 源上工作正常

ruby - 计算 Ruby 中的大写字母

ruby - 升级到 Rails 4,我无法通过在 Rails 3 中通过的设计测试