Question

J'essaie d'écrire des tests fonctionnels dans mon application rails et dans le fichier application_controller.rb:

before_filter :current_account
def current_account
  @current_account ||= Account.find_by_subdomain!(request.subdomians.first)
end

Lors de l'exécution de tests, request.subdomains ne contient pas les sous-domaines valides que je recherche et rend impossible l'exécution de tests fonctionnels.

Est-il possible d'arrêter la méthode current_account ou de simuler l'objet request.subdomains ?

Était-ce utile?

La solution

Dans votre test fonctionnel, vous devriez être capable de faire (en utilisant mocha):

@request.expects(:subdomains).returns(['www'])

Autres conseils

Pour moi (et avec Rails 2.3.4), la déclaration correcte est

@controller.request.expects(:subdomains).returns(['www'])

car je ne peux pas accéder directement à @request.

@controller.instance_variable_set(:@request, OpenStruct.new({:subdomains => 'www'}))

vous pouvez accéder à tout ce qui est en ruby:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top