Frage : die Gurke und webrat, die nicht Schienen finden, blitzen Mitteilung

so habe ich eine Gurkeverpflichtungseigenschaft, die, wenn die Verpflichtung erfolgreich ist nach dem Ausgang „erfolgreichen Ausrichtung“ der im HTML sucht. Ich weiß, dass sie dort ist, weil ich sie im Browser sehen kann, aber Gurke nicht it.
findet
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
#signup.feature
Eigenschaft: Verpflichtung
  Zwecks die Web site verwenden
  Als Anwärter
  Ich möchte zur Verpflichtung in der Lage sein
  
  Drehbuch: Verpflichtung
    Gegeben bin ich auf der Verpflichtungsseite
    Wenn ich ausfülle „[email protected]“ für „user_email“
    Wenn ich ausfülle „123456“ für „user_password“
    Wenn ich ausfülle „123456“ für „user_password_confirmation“
    Wenn ich bedränge „user_submit“
    Dann sollte ich „die erfolgreiche Ausrichtung“ sehen

#cucumber Anschlussausgang
(::) ausfallen Schritte (::)

erwartete den folgenden Inhalt des Elements, um „die erfolgreiche Ausrichtung“ einzuschließen:
KADAKO Arbeits-cm
				Angemeldet als [email protected]
				Profil
				Logout
	[email protected]
		Persönliche Details	
			Persönliche Details redigieren
								Vollständiger Name:
					DOB:
					Adresse:
					Pass-Zahl:
					Paß läuft ab:
					Nationalität:
					Kontakt-eMail:
					Haupttelefon:
					Handy:
					PCN-Zahl:
					Andere Verwaltungskörper Identifikation:
	Neue Qualifikation der Qualifikationen
		Arbeits-Geschichten-Werkgeschichte
		© copyright 2010
		Ausdrücke des Services | 
		Mit uns in Verbindung treten 
		Entworfen und vorbei errichtet:
var gaJsHost = ((„https: “ == document.location.protocol)? „https://ssl.“ : „http://www .");
document.write (unescape („%3Cscript src='" + gaJsHost + „google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E“));
Versuch {
var pageTracker = _gat. _getTracker („UA-15856249-1“);
pageTracker. _trackPageview ();
} Fang (sich irren) {} (Spezifikt.:: Erwartungen:: ExpectationNotMetError)
./features/step_definitions/web_steps.rb: 145: in „/^ (?: |I) sollten „([^“] *) „$“ sehen
Eigenschaften/signup.feature: 12: in „dann sollte mir „die erfolgreiche Ausrichtung“ sehen“

Antwort : die Gurke und webrat, die nicht Schienen finden, blitzen Mitteilung

O.K.… Ist hier der Inhalt des Blogpfosten… jon

Rubin: Using reset_session in den Schienen mit Gurke und Webrat
Ich archivierte die folgende Wanze:

    Alle Schienensicherheitsführer sagen, dass Sie reset_session benennen sollten, nachdem der Benutzer heraus anmeldet oder loggt. Dieses löscht heraus den Lernabschnitt und zwingt eine neue Lernabschnitt Identifikation verursacht zu werden. Es scheint, dass es einige Schienenwanzen gegeben hat, die auf reset_session in den Jahren bezogen werden. Jedoch werde ich jetzt gesorgt, dass es einen Konflikt gibt, der irgendwo auf Infrastruktur und/oder Webrat Prüfung der Schienen bezogen wird.

    In einer meiner LOGON-Tat benenne ich reset_session und setze dann eine nette Mitteilung im Blitz um. Wenn ich wirklich die Web site verwende, kann ich sehen (über Firefox) dass ich eine neue Lernabschnitt Identifikation erhalte, und ich kann meine grelle Mitteilung sehen. Jedoch wenn ich Tests für jene zwei Sachen schreibe, geht die grelle Mitteilung verloren, und ich erhalte nicht eine neue Lernabschnitt Identifikation in meinen Plätzchen. Sie ist fast, als ob der neue Lernabschnitt ignoriert wird, und der alte Lernabschnitt wird verwendet.

    Es tut mir leid aber ich kann nicht genau erklären, wo das Problem ist. Ich weiß, dass es speziellen Schienencode gibt, der Lernabschnittplätzchen behandelt, wenn Sie Integrationsprüfung tun.

    Ich verwende actionpack-2.3.8 und webrat-0.7.1.

Ist hier, wie ich mein Bestes tat, um um das Problem zu arbeiten.

Zuerst speichere ich meine Lernabschnitte in der Datenbank. Folglich verursachte ich ein ActiveRecord Modell, um Lernabschnittaufzeichnungen manuell zu löschen:

der Kategorie Lernabschnitt <� ActiveRecord::Base="">  # Schienen reset_session ist nichts aber Mühe für uns gewesen.  Ich nehme
  # macht in meine eigenen Hände aus.  Dieser Code muss ändern, wenn wir stoppen
  #, unsere Lernabschnitte in die Datenbank einsetzend.
  def self.nuke_session (session_id)
    find_by_session_id! (session_id) .destroy
  Ende
Ende

Da ich die authlogic Anwendung bin, schaut meine Logouttätigkeit etwas Ähnliches:

def zerstören
  current_user_session.destroy

  # Lernabschnittfixierungangriffe vermeiden.  Dieses kann überflüssig scheinen, aber es war
  # notwendig, den Testdurchlauf zu bilden.
  Lernabschnitt [: test_that_this_disappears] = „okay“
  session_id = Plätzchen [ActionController:: Base.session_options [: Schlüssel]]
  Session.nuke_session (session_id)
  reset_session

  redirect_to: Tätigkeit =>: logged_out
Ende

Meine LOGON-Tätigkeit ist etwas Ähnliches:

def verursachen
  @user_session = UserSession.new (Params [: user_session])
  es sei denn @user_session.valid?
    Rückkehr überträgt: Tätigkeit =>: neu
  Ende

  # Lernabschnittfixierungangriffe vermeiden, indem Sie den Lernabschnitt zurückstellen.
  reset_session
  @user_session = UserSession.new (Params [: user_session])
  @user_session.save!

  # aus irgendeinem Grund, erhalten Blitz, reset_session, Gurke, etc. nicht entlang,
  # so muss ich die grelle Mitteilung über einen Parameter weiterleiten.
  redirect_to (root_url (: LOGON => 1))
Ende

Anstatt, eine Mitteilung über Blitz einzustellen, führe ich einen Fragenparameter.

Ich überprüfe auf diesem Parameter in meinem ApplicationController:

before_filter: check_for_login_message

# aus irgendeinem Grund, erhalten Blitz, reset_session, Gurke, etc. nicht entlang.
# folglich, nach LOGON, müssen wir die grelle Mitteilung über einen Fragenparameter weiterleiten
# eher als über Blitz.
#
#, wenn ich diese Art der Sache wiederholen muss, stelle ich eine Nachschlagentabelle voll her
# von den Mitteilungen.
def check_for_login_message
  flash.now [: success_message] = „LOGON erfolgreich!“ wenn Params [: LOGON]
Ende

Schließlich habe ich dieses in einer Eigenschaftsakte:

# sollte dieser Test arbeiten.  Tatsächlich funktioniert es, wenn Sie Ihren Browser benutzen.
# jedoch, gibt es eine Wanze irgendwo zwischen Schienen und Webrat, das verhindert
# es vom Arbeiten, wenn Sie Gurke benutzen.  Irgendwie ist reset_session defekt.
#
# Drehbuch: das Anmelden sollte Ihr Lernabschnittplätzchen ungültig erklären
# gegeben bin ich auf dem homepage
#, wenn ich mein Lernabschnittplätzchen betrachte
# und ich werden angemeldet
# dann sollte ich ein anderes Lernabschnittplätzchen essen

Dieser Test beruht auf diesen Schritten:

# sollte dieser Test arbeiten.  Tatsächlich funktioniert es, wenn Sie Ihren Browser benutzen.
# jedoch, gibt es eine Wanze irgendwo zwischen Schienen und Webrat, das verhindert
# es vom Arbeiten, wenn Sie Gurke benutzen.  Irgendwie ist reset_session defekt.
#
# tun gegebener/^I Blick auf meinen Lernabschnitt cookie$/
# @cookie = Plätzchen [ActionController:: Base.session_options [: Schlüssel]]
# Ende
#
# dann sollte/^I einen anderen Lernabschnitt cookie$/haben tun
# new_cookie = Plätzchen [ActionController:: Base.session_options [: Schlüssel]]
# new_cookie.sh ould_not == @cookie
# Ende
Weitere Lösungen  
 
programming4us programming4us