This gem brings back
assigns to your controller tests as well as
to both controller and integration tests.
These methods were removed in Rails 5.
Add this line to your application's Gemfile:
And then execute:
Or install it yourself as:
$ gem install rails-controller-testing
rspec-rails automatically integrates with this gem since version
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
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 end
For projects and gems using controller tests outside of a Rails application,
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.install
assigns allows you to access the instance variables that have been passed to
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 end
assert_template allows you to assert that certain templates have been rendered.
class PostControllerTest < ActionController::TestCase def test_index get :index assert_template 'posts/index' end end
- 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