Rails::Controller::Testing
This gem brings back assigns to your controller tests as well as assert_template
to both controller and integration tests.
These methods were removed in Rails 5.
Installation
Add this line to your application's Gemfile:
gem 'rails-controller-testing'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rails-controller-testing
RSpec
See https://github.com/rspec/rspec-rails/issues/1393.
rspec-rails automatically integrates with this gem since version 3.5.0.
Adding the gem to your Gemfile is sufficient.
If you use an older version of rspec-rails, you can manually include the
modules in your rails_helper.
RSpec.configure do |config|
[:controller, :view, :request].each do |type|
config.include ::Rails::Controller::Testing::TestProcess, :type => type
config.include ::Rails::Controller::Testing::TemplateAssertions, :type => type
config.include ::Rails::Controller::Testing::Integration, :type => type
end
endOutside Rails
For projects and gems using controller tests outside of a Rails application,
invoke the Rails::Controller::Testing.install method inside your test suite
setup to include the required modules on controller test cases.
# test/test_helper.rb
require 'rails-controller-testing'
Rails::Controller::Testing.installUsage
assigns
assigns allows you to access the instance variables that have been passed to
your views.
class PostsController < ActionController::Base
def index
@posts = Post.all
end
end
class PostControllerTest < ActionController::TestCase
def test_index
get :index
assert_equal Post.all, assigns(:posts)
end
endassert_template
assert_template allows to you assert that certain templates have been rendered.
class PostControllerTest < ActionController::TestCase
def test_index
get :index
assert_template 'posts/index'
end
endContributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create new Pull Request

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
