Meine Anwendung leitet eine externe Partei für Single-Sign-On (SSO) um.Mocking eine externe SSO-Anmeldung in RSpec Feature-Spezifikationen mit Capybara Webkit
Sobald diese externe Partei angemeldet ist, leitet sie diesen Benutzer zurück zur Rückrufroute meiner App.
Diese umgesetzt wird, wie in der Steuerung folgt:
SsoController < ApplicationController
def connect
# do stuff
# Redirect to external party with some params
redirect_to "www.external-party.com?foo=\"bar\""
end
def callback
# Receive response from external party
response = params[:response]
# do stuff
end
end
In meiner Funktion specs würde ich gerne, tatsächlich haben diese so verspottet aus kann ich die End-to-End-Test-Funktionalität aus der Sicht des Benutzers.
Ich verwende RSpec + Capybara und ich würde die folgende Strömung tun modellieren -
- Der Benutzer klickt auf eine Schaltfläche (zB „Anmelden“)
- Die Schaltfläche zum
connect
gebunden Aktion, über die Umleitungen an eine externe Partei - RSpec eine Antwort verspottet, basierend auf dem params über und sendet eine
POST
Anfrage zurück zu meiner app (callback
Aktion) - Weitere Business-Logik melden sie sich an Benutzern und nehmen sie geschickt th EIR Ziel
Ich bin nicht sicher, wie der 3. Schritt zu tun, vor allem mit dem Anruf abzufangen, den Aufbau die Antwort, und POST-ing etwas zurück
Dank!
Bearbeiten: Eine POST
Anfrage zurück zu meiner App ist bevorzugt, aber ist kein Muss. Wenn es sich um eine GET
Anfrage oder eine Weiterleitung handelt, kann ich meine App so konfigurieren, dass diese HTTP-Verben nur in der Testumgebung zugelassen werden.
Danke! Das scheint sehr nützlich zu sein. – user2490003