Auto-params plugin

This plugin allows functional tests to declare parameters that will always be included in get, post, put, delete, and head calls.

This can be especially useful in functional tests involving nested resources.

Install

./script/plugin install http://svn.depixelate.com/plugins/auto_params

How it works

Consider testing a ContactsController given the following routes:

routes.rb

map.resources :regions do |regions|
  regions.resources :contacts
end

Example controller code:

class ContactsControllerTest < Test::Unit::TestCase
  fixtures :regions, :contacts

  def test_index
    get :index, :region_id => 1
    ...
  end

  def test_create
  	post :create, :region_id => 1, :contact => { :name => 'John' }
    ...
  end

end

Example controller code with plugin:

class ContactsControllerTest < Test::Unit::TestCase
  fixtures :regions, :contacts
  auto_params :region_id => 1

  def test_index
    get :index
    ...
  end

  def test_create
  	post :create, :contact => { :name => 'John' }
    ...
  end

end

To override an auto_param, just specify it like always:

class ContactsControllerTest < Test::Unit::TestCase
  fixtures :regions, :contacts
  auto_param :region_id => 1

  def test_index
    # automatically call 'get' method with region_id => 1
    get :index
    ...
  end

  def test_create
    # call 'get' method with region_id => 2
  	post :create, :region_id => 2, :contact => { :name => 'John' }
    ...
  end
end
Comment or question via
FYI: This post was migrated over from another blogging engine. If you encounter any issues please let me know on . Thanks.