Как проверить наличие атрибута в XML/JSON с помощью RSpec?

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

  • Совсем отсутствует
  • Присутствует, но значение равно nil
  • Present and value — это datetime

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

0
задан Zheileman 26 March 2012 в 16:57
поделиться