This gem brings back assigns
to your controller tests as well as assert_template
to both controller and integration tests.
Note: This gem is only useful once assigns
and assert_template
have been
removed from Rails.
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 will automatically integrate with this gem once Rails 5 is released proper.
Adding the gem to your Gemfile
is sufficient.
To work around the issue right now, you'll have to include the modules in your spec_helper
.
RSpec.configure do |config|
config.include Rails::Controller::Testing::TestProcess
config.include Rails::Controller::Testing::TemplateAssertions
config.include Rails::Controller::Testing::Integration
end
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
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