method

process

process(method, path, params: nil, headers: nil, env: nil, xhr: false, as: nil)
public

Performs the actual request.

  • `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.

Example:

process :get, '/author', params: { since: 201501011400 }