Integration test methods such as Integration::RequestHelpers#get and Integration::RequestHelpers#post return objects of class TestResponse, which represent the HTTP response results of the requested controller actions.

See Response for more information on controller response objects.

Methods

Class Public methods

from_response(response)

# File actionpack/lib/action_dispatch/testing/test_response.rb, line 13
def self.from_response(response)
  new response.status, response.headers, response.body
end

Instance Public methods

parsed_body()

Returns a parsed body depending on the response MIME type. When a parser corresponding to the MIME type is not found, it returns the raw body.

Examples

get "/posts"
response.content_type      # => "text/html; charset=utf-8"
response.parsed_body.class # => String
response.parsed_body       # => "<!DOCTYPE html>\n<html>\n..."

get "/posts.json"
response.content_type      # => "application/json; charset=utf-8"
response.parsed_body.class # => Array
response.parsed_body       # => [{"id"=>42, "title"=>"Title"},...

get "/posts/42.json"
response.content_type      # => "application/json; charset=utf-8"
response.parsed_body.class # => Hash
response.parsed_body       # => {"id"=>42, "title"=>"Title"}
# File actionpack/lib/action_dispatch/testing/test_response.rb, line 35
def parsed_body
  @parsed_body ||= response_parser.call(body)
end

response_parser()

# File actionpack/lib/action_dispatch/testing/test_response.rb, line 39
def response_parser
  @response_parser ||= RequestEncoder.parser(media_type)
end