We have some controllers that are namespaced as Admin controllers eg: Admin::ProductController.
...and this is a legacy system, and never had any functional tests created for those...
So I was trying to get started on adding some functional tests. I created a test/functional/admin folder, then added a product_controller_test.rb under that, with the usual:
class ProductController < ActionController::TestCase
At first, the tests wouldn't even load properly, and I was getting the following error:
uninitialized constant ActionController (NameError)
That, apparently, is solved by explicitly putting:
at the top of the file. After which it loads fine, and the null-test runs. but after that, I kept getting the following error:
RuntimeError: @controller is nil: make sure you set it in your test's setup method
It seems that you need to namespace your tests too, so instead of the class declaration I have above, you need:
class Admin::ProductController < ActionController::TestCase
The admin folder isn't enough.