【问题标题】:How can I check for the presence of an attribute in XML/JSON using RSpec?如何使用 RSpec 检查 XML/JSON 中是否存在属性?
【发布时间】:2012-03-26 16:57:53
【问题描述】:

我正在寻找检查 XML 或 JSON 响应中属性的存在的正确方法。我不在乎该值是 nil、empty 还是任何其他值,事实上,我的响应可能包含此特定属性的 3 种状态:

  • 根本不存在
  • 存在但值为nil
  • 现在和价值是datetime

所以我需要一些方法来统一和简化所有这些状态(因为所有这些状态在这个特定的测试中都是有效的)并且只询问属性 (last_visit_at) 是否存在。
我可以做同样的事情来测试它是否为零,即使用 JSON:

JSON.parse(response.body).first["last_visit_at"].should_not be_nil
JSON.parse(response.body).first["last_visit_at"].should be_nil

这在值为 nil 时不起作用,显然(nil 不响应 #exist? 或 #exists?):

JSON.parse(response.body).first["last_visit_at"].should exist

有没有办法做到这一点,它对 JSON 和 XML 响应都有效吗?谢谢。

【问题讨论】:

    标签: ruby-on-rails xml json rspec


    【解决方案1】:

    试试这个

    JSON.parse(response.body).first.keys.include?("last_visit_at").should be_true
    

    【讨论】:

    • 或者只是...keys.should include('last_visit_at')
    • 酷。这正是我所需要的。谢谢两位!
    猜你喜欢
    • 2011-01-18
    • 2021-04-22
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 2020-06-09
    相关资源
    最近更新 更多