tutorial rails learn español ejemplos curso ruby-on-rails ruby twitter oauth

ruby-on-rails - learn - ruby on rails tutorial español



Estrategias de prueba para Ruby on Rails y Twitter OAuth (3)

No tengo una receta precisa para Twitter (no he hecho exactamente eso hasta ahora), pero dado que OAuth tiene una especificación que describe los diferentes flujos posibles, trataría de enumerar cada uno de ellos para el caso en cuestión, y tratar de automatizar el Interacción.

Para guiarlo, aquí hay algunos consejos sobre información relevante:

Por lo general, el flujo para basado en web es diferente (como ha visto) si el usuario no ha otorgado autorización a la aplicación cliente:

  • si el usuario aún no ha otorgado la autorización a la aplicación cliente, se lo redirige al sitio del proveedor del servicio
    • en el proveedor de servicios, si el usuario no ha iniciado sesión todavía, debe autenticarse con sus credenciales
    • una vez autenticado en el proveedor del servicio, se requiere que autorice o deniegue la autorización a la aplicación / servicio del cliente
    • una vez que ha dado la respuesta de autorización, se envía de vuelta al sitio del cliente, que luego puede obtener un token de acceso
  • si el usuario ya había autorizado la aplicación / servicio cliente, entonces puede usar el token de acceso para omitir esos pasos y acceder a los datos / API de los usuarios en el proveedor de servicios.

Estoy desarrollando una aplicación que utiliza twitter oauth y se encontró con una pared de ladrillos tratando de descubrir cómo probar Twitter oauth. Especialmente tratando de usar Cucumber y Webrat / Selenium para probar la funcionalidad: ciertos pasos en el proceso de registro / inicio de sesión se comportan de manera diferente si el usuario ha otorgado o no acceso a la aplicación, entre otras cosas.

¿Alguien ha tenido éxito en burlar o pegar partes o todo el sistema Twitter OAuth en sus características de Ruby on Rails Cucumber (o cualquier otro marco de prueba para el caso)? Cualquier ayuda sería apreciada.



Usé burlas en mis casos de prueba. Probé de forma manual, descubrí cuáles deberían ser las respuestas y anulé la gema de ruby ​​oAuth. Aquí hay un caso de prueba (usando Shoulda) para un tuit exitoso:

context ''cork/tweet'' do setup do response = Net::HTTPResponse.new("1.1", 200, "") Net::HTTPResponse.any_instance.stubs(:body).returns JSON_RESPONSE OAuth::AccessToken.any_instance.stubs(:post).returns(response) post :create, :cork_id => @cork.id, :message=>MESSAGE end should_respond_with :redirect should_change(''Tweet.count'' , :by => 1) {Tweet.count} .. and so on

JSON_RESPONSE es la respuesta que obtuve de mis pruebas manuales: puse un printf en lib / oauth / tokens / access_token.rb: 44: en `post ''para capturar la respuesta.

De lo contrario, esto es casi imposible de probar, b / c como usted señala, Twitter no tiene forma de desautorizar su aplicación de la API, y actúa de manera diferente si ya ha autorizado la aplicación.