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.
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:
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.
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.
Tags und Links ruby ruby-on-rails oauth twitter