Question

J'ai défini le filtre suivant:

# application_controller.rb
class ApplicationController < ActionController::Base
  before_filter :find_account

  private

    def find_account
      @current_account = Account.find_by_subdomain!(request.subdomains.first)
    end
end

et dans mon test:

# users_controller_test.rb
class UsersControllerTest < ActionController::TestCase
  setup do
    @request.host = "test.myapp.local"
  end
  # ...
end

Maintenant, test est défini comme le sous-domaine d'un compte factice que je charge avant toutes les demandes à l'aide de factory_girl . Cependant, cela renvoie une erreur d'objet nil, en disant que @request est nil. La suppression du bloc d'installation provoque l'échec de tous mes tests car find_account ne peut pas trouver de compte et génère donc une erreur RecordNotFound .

Qu'est-ce que je fais de travers?

Était-ce utile?

La solution

Essayez ceci:

@request.env['HTTP_HOST'] = 'test.myapp.local'
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top