ruby - 如何使用 rspec 中的字符串键模拟散列,它来自 ruby​​ 的新散列表示法中的 web 服务

标签 ruby web-services hash rspec notation

当我从返回带有字符串键的散列的 web 服务收到响应时,我必须像这样读取它们:

foo = @web_service.get_foo
if foo["code"] == 200
  # do something
end

在 rspec 中,我必须模拟这个 web 服务并返回字符串的散列,因为我检查字符串键“code”。

@web_service.should_receive(:get_foo).and_return("code" => 200)

但是我如何使用新的 ruby​​ 哈希表示法做到这一点。像这样的东西:

@web_service.should_receive(:get_foo).and_return("code": 200)

我无法将服务中的响应更改为符号键。 我必须忍受新旧符号的混合吗?

编辑 我在主题中更改了一个词。它是一个带有字符串键的哈希。

最佳答案

如果散列是字符串键,您将无法使用新表示法。只有符号。

如果您真的想使用符号访问,一种选择是导入 Rails ActiveSupport并使用他们的 Indifferent Access功能。它增加了另一个需要管理的依赖项,但也可以帮助您保持代码更简洁。

关于ruby - 如何使用 rspec 中的字符串键模拟散列,它来自 ruby​​ 的新散列表示法中的 web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17173150/

相关文章:

c - 哈希表 : how to achieve 0(1)?

ruby - 提高ArgumentError ruby

ruby-on-rails - 使用 Ruby on Rails Twitter Gem 在 Twitter 上上传多张图片

ios - 应用程序可以在模拟器上运行,但不能在设备上运行。Https Web 服务问题

javascript - 以 xml 作为请求数据的 html 中的 POST 请求示例

c# - 哈希码作为键控集合中的键

ruby-on-rails - "error(s) on assignment of multiparameter attributes"日期/时间字段

ruby-on-rails - 使用 money gem 进行 rails 缓存(eu_central_bank)

c# - 限制 RESTful 应用程序中的服务调用次数

ruby-on-rails - Rails 4 - 如何获取生产中图像的图像路径,最后带有哈希?