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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top