检查规范中哈希的值

时间:2013-12-24 07:37:58

标签: ruby-on-rails rspec

我有一个服务对象,其方法返回一个带有值的哈希作为结果。我尝试用rspec测试这个,但是我很难检查返回的值。这是规范:

it "calculates holiday balance for approved timesheets" do
  subject = GraphBuilder.new.show_holidays(employee)
  subject[:used].should eq("2.0")
end

但这会返回错误:

 no implicit conversion of Symbol into Integer

该方法返回此哈希:

 [["type", "days"], ["used", 2.0], ["available", 25.0]]

这样做的正确方法是什么?谢谢!

1 个答案:

答案 0 :(得分:1)

您的方法返回一个数组,而不是哈希值。

将此数组转换为如下所示的哈希:

Hash[[["type", "days"], ["used", 2.0], ["available", 25.0]]]
# => {"type"=>"days", "used"=>2.0, "available"=>25.0}