Question

Je ne parviens pas à arrêter une méthode d'assistance de mon application Sinatra depuis Cucumber .

J'ai une application Sinatra avec authentification de session simple (par cookies) et je souhaite désactiver l'authentification en annulant la méthode d'assistance log_in? pour mon Concombre . Il semble y avoir un problème avec Sinatra et Cucumber concernant les sessions, alors j’ai pensé à utiliser simplement Mocha pour résoudre le problème.

Cependant, je ne sais pas comment accéder à l'instance de Sinatra :: Application à partir d'un Given -Block pour tronquer la méthode.

Était-ce utile?

La solution

Vous pouvez obtenir le bon contexte en utilisant Sinatra :: Application.class_eval

Modifier: voir la réponse de l'affiche originale pour une explication complète.

Autres conseils

Il semble que je doive remplacer directement mon mécanisme d'authentification dans un bloc Before do do ... end -block

.

Je me suis donc retrouvé avec un hooks.rb placé dans le fichier features / support / écrasant mon log_in? et le utilisateur actuel. méthode.

Before do
  MySinatraApplicationClass.class_eval do
    helpers do
      def logged_in?
        return true
      end
      def current_user
        # This returns a certain Username usually stored 
        # in the session, returning it like
        # that prohibits different user logins, but for
        # now this is enough for me
        "Walter"
      end
    end
  end
end

La seule chose à laquelle je devais m'occuper, c'est qu'aucune autre action de l'application ne lise directement à partir de session , mais utilise plutôt ces aides.

Malheureusement, je pense que cette façon de gérer les applications Sinatra basées sur des sessions via Cucumber est déjà décrite ailleurs et je pensais que mon problème était différent .

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