All threads / How to test helpers in Rails with Devise current_user and ActionView::TestCase Discussion

Ask A Question

Notifications

You’re not receiving notifications from this thread.

How to test helpers in Rails with Devise current_user and ActionView::TestCase Discussion

Chris Oliver asked in General

Thanks Chris!
Update: Rubocop recommend to use (Style/TrivialAccessors: Use attr_reader to define trivial reader methods.)

attr_reader :current_user

@Chris, I was trying to go through an old version of Rail Tutorial (probably Rails 4) and ran into a similar issue, while creating the authentication system it seems like you said here, we need to define the current_user, logged_in? and other methods again for the tests to work. I finally however, gave up when I realized that I got the error below. It seems counter intuitive though that methods (even helper_methods) defined in the controller cannot be accessed by the TestController, is there any specific reason why this was done?

test_current_user_returns_right_user_when_session_is_nil#ApplicationControllerTest (0.07s)
Minitest::UnexpectedError: NoMethodError: undefined method `session' for nil:NilClass

This is due the usage of session[user_id] in the current_user method which I did include in the ControllerTest

Join the discussion

Want to stay up-to-date with Ruby on Rails?

Join 37,629+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.

    logo Created with Sketch.

    Ruby on Rails tutorials, guides, and screencasts for web developers learning Ruby, Rails, Javascript, Turbolinks, Stimulus.js, Vue.js, and more. Icons by Icons8

    © 2020 GoRails, LLC. All rights reserved.