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

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']