How to test JSON result from Ruby on Rails functional tests? How to test JSON result from Ruby on Rails functional tests? ruby-on-rails ruby-on-rails

How to test JSON result from Ruby on Rails functional tests?


In Rails >= 5

Use ActionDispatch::TestResponse#parsed_body.

Example:

user = @response.parsed_bodyassert_equal "Mike", user['name']

In Rails up to 4.x

Use JSON.parse, which takes a string as input and returns a Ruby hash that the JSON represents.

Example:

user = JSON.parse(@response.body)assert_equal "Mike", user['name']


Rails has JSON support built in:

def json_response    ActiveSupport::JSON.decode @response.bodyend

No need for a plugin

Then you can do something like this:

assert_equal "Mike", json_response['name']