Skip to content

"@controller is nil" error in ActionController::TestCase #5

@sunaku

Description

@sunaku

When using context() inside an ActionController::TestCase, I get the following error:

RuntimeError: @controller is nil: make sure you set it in your test's setup method.

Here is an example of what my test file looks like:

class ExamplesControllerTest < ActionController::TestCase
  context "index action" do
    should "return a list of examples" do
      get :index, :format => :json
      assert_response :success
    end
  end
end

The error is happening because context() creates a new Test::Unit::TestCase derived class whose name does not contain "ExamplesController", and so Rails becomes confused when it tries to automatically set @controller inside of the context() body.

Thanks for your consideration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions