Gurke und -abstand: current_user in den Schritten
-
26-09-2019 - |
Frage
Was ich, was zu tun ist zu verwenden (setzen auf) current_user
Verfahren während Cucumber Schritte definieren. Ich verwende Räumungs in meinem Projekt.
Als erstes habe ich versucht, sign_in
zu verwenden, aber es hat nicht funktioniert (ich denke, Gurke Welt nicht über Räumungsverfahren nicht kennt ...).
Wie mache ich Cuckes erkennen current_user
und sign_in
/ sign_out
Methoden?
Lösung
Ihre Gurken Funktionen sollten Ihre Anwendung durch die öffentliche Benutzeroberfläche fahren. So etwas wie:
Given /^I am signed in as "([^\"]*)"%/ do |username|
visit 'sign_in'
fill_in 'Username', :with => username
click 'Sign In'
end
Da die current_user
Methode an den Browser nicht zur Verfügung steht, sollten Sie nicht in Ihrem spec verwenden es sein.
Sie könnten gefälschtes es in Ihren Schritten durch @current_user
in dem obigen Schritt zu speichern und dann ein Attribut Leser für sie bereitstellt.
Andere Tipps
Ich bin nicht einverstanden mit der Idee, dass jeder Acceptance Test (Gurke oder aus anderen Gründen) müssen die Anmeldelogik ausüben. Zum Glück, wenn Sie einverstanden sind, hat Räumungs hinzugefügt, um eine Hintertür in Tests, die Sie überspringen das Zeichen in Schritten können.
user = create(:user)
visit posts_path(as: user)
Jetzt können Sie Ihre Login-bezogene Funktionen Antrieb das Login ui als Benutzer verlassen würden und überspringen, dass für Funktionen, die nicht direkt an der Protokollierung verwandt sind in.