当我从返回带有字符串键的散列的 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/