2012-03-26 136 views
0

我正在寻找正确的方法来检查XML或JSON响应中属性的存在。我不在乎,如果该值为零,空或任何其他值,实际上,我的反应可能含有3种状态对于该特定属性:如何使用RSpec检查XML/JSON中是否存在属性?

  • 一点也不
  • 目前存在但值是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 

时价值为零,显然这不工作(零并没有任何回应#exist还是? #存在?):

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

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

回答

6

试试这个

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

或只是'... keys.should包括( 'last_visit_at')'。 – Brandan 2012-03-26 17:48:29

+0

很酷。这正是我需要的。谢谢你们! – Zheileman 2012-03-26 18:08:57