`method`: The HTTP method (GET, POST, PATCH, PUT, DELETE, HEAD, OPTIONS) as
a symbol.
`path`: The URI (as a String) on which you want to perform the request.
`params`: The HTTP parameters that you want to pass. This may be `nil`, a
Hash, or a String
that is appropriately encoded (`application/x-www-form-urlencoded` or
`multipart/form-data`).
`headers`: Additional headers to pass, as a Hash.
The headers will be merged into the Rack env
hash.
`env`: Additional env to pass, as a Hash. The
headers will be merged into the Rack env hash.
`xhr`: Set to `true` if you want to make an Ajax request. Adds request
headers characteristic of XMLHttpRequest e.g. HTTP_X_REQUESTED_WITH. The
headers will be merged into the Rack env hash.
`as`: Used for encoding the request with different content type. Supports
`:json` by default and will set the appropriate request headers. The
headers will be merged into the Rack env hash.
This method is rarely used directly. Use RequestHelpers#get,
RequestHelpers#post, or other standard HTTP methods in integration tests.
`#process` is only required when using a request method that doesn’t have
a method defined in the integration tests.
This method returns the response status, after performing the request.
Furthermore, if this method was called from an ActionDispatch::IntegrationTest
object, then that object’s `@response` instance variable will point to a
Response object which one can use to inspect the details of the response.