Class: ActionDispatch::TestResponse
- Defined in:
- lib/action_dispatch/testing/test_response.rb
Overview
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.
Constant Summary
Constants inherited from Response
Response::CONTENT_TYPE, Response::LOCATION, Response::NO_CONTENT_CODES, Response::SET_COOKIE
Constants included from Http::FilterRedirect
Http::FilterRedirect::FILTERED
Instance Attribute Summary
Attributes inherited from Response
#header, #request, #status, #stream
Attributes included from Http::Cache::Response
Class Method Summary collapse
Instance Method Summary collapse
-
#parsed_body ⇒ Object
Returns a parsed body depending on the response MIME type.
- #response_parser ⇒ Object
Methods inherited from Response
#abort, #await_commit, #await_sent, #body, #body=, #body_parts, #charset, #charset=, #close, #code, #commit!, #committed?, #content_type, #content_type=, #cookies, create, #delete_header, #each, #get_header, #has_header?, #initialize, #media_type, merge_default_headers, #message, #reset_body!, #response_code, #send_file, #sending!, #sending?, #sending_file=, #sent!, #sent?, #set_header, #to_a, #write
Methods included from Http::Cache::Response
#date, #date=, #date?, #etag=, #etag?, #last_modified, #last_modified=, #last_modified?, #strong_etag=, #strong_etag?, #weak_etag=, #weak_etag?
Methods included from Http::FilterRedirect
Constructor Details
This class inherits a constructor from ActionDispatch::Response
Class Method Details
.from_response(response) ⇒ Object
13 14 15 |
# File 'lib/action_dispatch/testing/test_response.rb', line 13 def self.from_response(response) new response.status, response.headers, response.body end |
Instance Method Details
#parsed_body ⇒ Object
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"}
35 36 37 |
# File 'lib/action_dispatch/testing/test_response.rb', line 35 def parsed_body @parsed_body ||= response_parser.call(body) end |
#response_parser ⇒ Object
39 40 41 |
# File 'lib/action_dispatch/testing/test_response.rb', line 39 def response_parser @response_parser ||= RequestEncoder.parser(media_type) end |