Anstoßen Sinatra Helfer in Cucumber
Frage
ich zur Zeit mit Ausdrücken eine Hilfsmethode meines Sinatra App innerhalb von Gurke am kämpfen.
Ich habe einen Sinatra App mit einfacher Sitzungsauthentifizierung (von Cookies), und ich mag die Authentifizierung aktivieren, indem die logged_in?
Hilfsmethode Ausdrücken nach meinen Gurke Szenarien.
Es scheint ein Problem zu sein, mit Sinatra und Gurke über Sitzungen so dachte ich gerade Mokka mit, um das Problem zu arbeiten.
Allerdings weiß ich nicht, wie ich die Sinatra::Application
Instanz innerhalb eines Given
-Block-Zugriff auf die Methode Stub.
Lösung
Sie können den richtigen Kontext erhalten, indem Sinatra::Application.class_eval
mit
Edit: Siehe Antwort ursprüngliches Plakats des für die vollständige Erklärung
.Andere Tipps
Es scheint, wie ich brauche, um direkt in einem Before do ... end
-Block meinen Authentifizierungsmechanismus außer Kraft setzen
So landete ich mit einem hooks.rb
in features/support/
Datei überschrieben meine logged_in?
und die current_user
Methode platziert werden.
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
Das einzige, was ich kümmern musste, ist, dass die keine andere Aktionen innerhalb der Anwendung direkt von session
lesen, sondern vielmehr jene Helfer verwenden.
Leider glaube ich, auf diese Weise Sitzung basierend Sinatra-Anwendungen durch Cucumber der Handhabung schon woanders beschrieben wird, und ich dachte nur mein Problem war anders .