Как я могу проверить наличие атрибута в XML / JSON, используя RSpec? - PullRequest
0 голосов
/ 26 марта 2012

Я ищу правильный способ проверить наличие атрибута в ответе XML или JSON.Мне все равно, является ли значение ноль, пустым или любым другим значением, на самом деле мой ответ может содержать 3 состояния для этого конкретного атрибута:

  • Не присутствует вообще
  • Присутствует, но значение равно nil
  • Присутствует и значение равно datetime

Поэтому мне нужен какой-то способ унифицировать и упростить все эти состояния (потому что все они действительны в данном конкретном случаеtest) и просто спросить, присутствует ли атрибут ( 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 ответов?Спасибо.

1 Ответ

6 голосов
/ 26 марта 2012

попробуйте

JSON.parse(response.body).first.keys.include?("last_visit_at").should be_true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...