Teststrategien für Ruby on Rails & Twitter OAuth

8

Ich entwickle eine Anwendung, die twitter oauth nutzt und in eine Mauer rannte, um herauszufinden, wie man Twitter oauth testet. Besonders versuchen, Cucumber und Webrat / Selenium zu benutzen, um die Funktionalität zu testen - Bestimmte Schritte im Registrierungs- / Anmeldeprozess verhalten sich unterschiedlich, wenn der Benutzer oauth unter anderem Zugriff auf die App gegeben hat oder nicht.

Hat jemand da draußen Erfolg gehabt, Teile oder das gesamte Twitter-OAuth-System in seinen Ruby on Rails-Gurken-Features (oder irgendeinem anderen Test-Framework) zu verspotten oder zu stubben? Jede Hilfe wäre willkommen.

    
Ryan Neufeld 12.06.2009, 14:16
quelle

3 Antworten

3

Ich habe kein genaues Rezept für Twitter (das habe ich bis jetzt noch nicht gemacht), aber da OAuth eine Spezifikation hat, die die verschiedenen möglichen Flüsse beschreibt, würde ich versuchen, sie für den vorliegenden Fall aufzuzählen und zu versuchen um die Interaktion zu automatisieren.

Um Sie zu führen, hier ein paar Hinweise zu relevanten Informationen:

Normalerweise ist der Ablauf für Web-basierte anders (wie Sie gesehen haben), ob der Benutzer der Client-Anwendung keine Berechtigung erteilt hat:

  • Wenn der Benutzer der Clientanwendung noch keine Berechtigung erteilt hat, wird er zur Site des Serviceanbieters weitergeleitet
    • Beim Dienstanbieter ist der Benutzer nicht bereits angemeldet. Er muss sich mit seinen Anmeldeinformationen authentifizieren
    • Einmal authentifiziert beim Dienstanbieter ist es erforderlich, die Berechtigung für die Clientanwendung / den Clientdienst zu autorisieren oder zu verweigern
    • Sobald er die autorisierte Antwort gegeben hat, wird er an die Client-Site zurückgeschickt, die dann ein Zugriffs-Token erhalten kann
  • Wenn der Benutzer die Clientanwendung / den Service bereits autorisiert hat, kann er das Zugriffstoken verwenden, um diese Schritte zu umgehen und beim Serviceanbieter auf die Daten / API des Benutzers zuzugreifen
LucaM 13.06.2009, 20:02
quelle
4

Es ist mehr als ein Jahr seit dem OP vergangen, aber ich habe kürzlich diesen Artikel über die Verwendung von TwitterAuth und Cucumber gefunden, der für mich funktioniert hat.

Ссылка

    
Jordan Brock 19.08.2010 14:31
quelle
3

Ich habe mich in meinen Testfällen lustig gemacht. Ich testete manuell, fand heraus, was die Antworten sein sollten, und überging das Juwel von Ruby oAuth. Hier ist ein Testfall (mit Shoulda) für einen erfolgreichen Tweet:

%Vor%

JSON_RESPONSE ist die Antwort, die ich von meinen manuellen Tests gesammelt habe - ich habe ein printf in lib / oauth / tokens / access_token.rb: 44: in 'post' geschrieben, um die Antwort zu erfassen.

Ansonsten ist dies fast unmöglich zu testen, b / c wie Sie darauf hinweisen, Twitter hat keine Möglichkeit, Ihre Anwendung von der API zu entmächtigen, und verhält sich anders, wenn Sie die Anwendung bereits autorisiert haben.

    
Rob 07.09.2010 13:40
quelle

Tags und Links