Используйте JSON.parse драгоценного камня JSON , который берет строку в качестве входа и возвращает хеш Ruby, который представляет JSON.
Вот основная суть для теста:
user = JSON.parse(@response.body)
assert_equal "Mike", user['name']
Вот документация для драгоценного камня: http://json.rubyforge.org/ . Кроме того, можно играть с драгоценным камнем JSON в IRB довольно легко.
Также для коротких ответов JSON вы можете просто сопоставить строку JSON с @response .тело. Это избавляет от необходимости полагаться на еще один драгоценный камень.
assert_equal '{"total_votes":1}', @response.body
Rails имеет встроенную поддержку JSON:
def json_response
ActiveSupport::JSON.decode @response.body
end
Нет необходимости в плагине
Тогда вы можете сделать что-то вроде этого:
assert_equal "Mike", json_response['name']