module ActionController::TestCase::Behavior  
        
        Inherits From
- 
          module
          
ActionDispatch::TestProcess  - 
          module
          
ActiveSupport::Testing:: ConstantLookup  - 
          module
          
Rails::Dom:: Testing:: Assertions  - 
          module
          
ActionDispatch::Assertions  
Attributes
| [R] | request | 
            |
| [R] | response | 
            
Public instance methods
Source code GitHub
# File actionpack/lib/action_controller/test_case.rb, line 592
def build_response(klass)
  klass.create
end
            Source code GitHub
# File actionpack/lib/action_controller/test_case.rb, line 552
def controller_class_name
  @controller.class.anonymous? ? "anonymous" : @controller.class.controller_path
end
            Simulate a DELETE request with the given parameters and set/volley the response. See get for more details.
Source code GitHub
# File actionpack/lib/action_controller/test_case.rb, line 463
def delete(action, **args)
  process(action, method: "DELETE", **args)
end
            Source code GitHub
# File actionpack/lib/action_controller/test_case.rb, line 556
def generated_path(generated_extras)
  generated_extras[0]
end
            Simulate a GET request with the given parameters.
- 
action: The controller action to call. - 
params: The hash with HTTP parameters that you want to pass. This may benil. - 
body: The request body with a string that is appropriately encoded (application/x-www-form-urlencodedormultipart/form-data). - 
session: A hash of parameters to store in the session. This may benil. - 
flash: A hash of parameters to store in the flash. This may benil. 
You can also simulate POST, PATCH, PUT, DELETE, and HEAD requests with post, patch, put, delete, and head. Example sending parameters, session, and setting a flash message:
get :show,
  params: { id: 7 },
  session: { user_id: 1 },
  flash: { notice: 'This is flash message' }
Note that the request method is not verified. The different methods are available to make the tests more expressive.
Source code GitHub
# File actionpack/lib/action_controller/test_case.rb, line 439
def get(action, **args)
  process(action, method: "GET", **args)
end
            Simulate a HEAD request with the given parameters and set/volley the response. See get for more details.
Source code GitHub
# File actionpack/lib/action_controller/test_case.rb, line 469
def head(action, **args)
  process(action, method: "HEAD", **args)
end
            Simulate a PATCH request with the given parameters and set/volley the response. See get for more details.
Source code GitHub
# File actionpack/lib/action_controller/test_case.rb, line 451
def patch(action, **args)
  process(action, method: "PATCH", **args)
end
            Simulate a POST request with the given parameters and set/volley the response. See get for more details.
Source code GitHub
# File actionpack/lib/action_controller/test_case.rb, line 445
def post(action, **args)
  process(action, method: "POST", **args)
end
            process(action, method: "GET", params: nil, session: nil, body: nil, flash: {}, format: nil, xhr: false, as: nil)
            Simulate an HTTP request to action by specifying request method, parameters and set/volley the response.
- 
action: The controller action to call. - 
method: Request method used to send the HTTP request. Possible values areGET,POST,PATCH,PUT,DELETE,HEAD. Defaults toGET. Can be a symbol. - 
params: The hash with HTTP parameters that you want to pass. This may benil. - 
body: The request body with a string that is appropriately encoded (application/x-www-form-urlencodedormultipart/form-data). - 
session: A hash of parameters to store in the session. This may benil. - 
flash: A hash of parameters to store in the flash. This may benil. - 
format: Request format. Defaults tonil. Can be string or symbol. - 
as: Content type. Defaults tonil. Must be a symbol that corresponds to a mime type. 
Example calling create action and sending two params:
process :create,
  method: 'POST',
  params: {
    user: { name: 'Gaurish Sharma', email: 'user@example.com' }
  },
  session: { user_id: 1 },
  flash: { notice: 'This is flash message' }
To simulate GET, POST, PATCH, PUT, DELETE, and HEAD requests prefer using get, post, patch, put, delete and head methods respectively which will make tests more expressive.
It’s not recommended to make more than one request in the same test. Instance variables that are set in one request will not persist to the next request, but it’s not guaranteed that all Rails internal state will be reset. Prefer ActionDispatch::IntegrationTest for making multiple requests in the same test.
Note that the request method is not verified.
Source code GitHub
# File actionpack/lib/action_controller/test_case.rb, line 512
def process(action, method: "GET", params: nil, session: nil, body: nil, flash: {}, format: nil, xhr: false, as: nil)
  check_required_ivars
  @controller.clear_instance_variables_between_requests
  action = +action.to_s
  http_method = method.to_s.upcase
  @html_document = nil
  cookies.update(@request.cookies)
  cookies.update_cookies_from_jar
  @request.set_header "HTTP_COOKIE", cookies.to_header
  @request.delete_header "action_dispatch.cookies"
  @request          = TestRequest.new scrub_env!(@request.env), @request.session, @controller.class
  @response         = build_response @response_klass
  @response.request = @request
  @controller.recycle!
  if body
    @request.set_header "RAW_POST_DATA", body
  end
  @request.set_header "REQUEST_METHOD", http_method
  if as
    @request.content_type = Mime[as].to_s
    format ||= as
  end
  parameters = (params || {}).symbolize_keys
  if format
    parameters[:format] = format
  end
  setup_request(controller_class_name, action, parameters, session, flash, xhr)
  process_controller_response(action, cookies, xhr)
end
            Simulate a PUT request with the given parameters and set/volley the response. See get for more details.
Source code GitHub
# File actionpack/lib/action_controller/test_case.rb, line 457
def put(action, **args)
  process(action, method: "PUT", **args)
end
            Source code GitHub
# File actionpack/lib/action_controller/test_case.rb, line 560
def query_parameter_names(generated_extras)
  generated_extras[1] + [:controller, :action]
end
            Source code GitHub
# File actionpack/lib/action_controller/test_case.rb, line 564
def setup_controller_request_and_response
  @controller = nil unless defined? @controller
  @response_klass = ActionDispatch::TestResponse
  if klass = self.class.controller_class
    if klass < ActionController::Live
      @response_klass = LiveTestResponse
    end
    unless @controller
      begin
        @controller = klass.new
      rescue
        warn "could not construct controller #{klass}" if $VERBOSE
      end
    end
  end
  @request          = TestRequest.create(@controller.class)
  @response         = build_response @response_klass
  @response.request = @request
  if @controller
    @controller.request = @request
    @controller.params = {}
  end
end