2012-03-26 56 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

相關問題