This gem brings back
assigns to your controller tests as well as
to both controller and integration tests.
Note: This gem is only useful once
assert_template have been
removed from Rails.
Add this line to your application's Gemfile:
And then execute:
Or install it yourself as:
$ gem install rails-controller-testing
rspec-rails will automatically integrate with this gem once
3.5.0 and Rails 5 are released.
Adding the gem to your
Gemfile is sufficient.
To work around the issue right now, use a beta version of rspec-rails or
manually you'll have to 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 to you 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