¿Cómo debo tratar con dependencias en línea cuando se ejecuta Rspec fuera de línea?

StackOverflow https://stackoverflow.com/questions/4603161

  •  25-09-2019
  •  | 
  •  

Pregunta

Me gustaría correr RSpec para probar mi código, tanto cuando estoy conectado a la red y cuando no estoy.

Por desgracia, hay algunas pruebas en la aplicación que dependen de tener una conexión en directo - el envío de correo electrónico, la integración de Facebook, etc.

¿Hay una manera de mejores prácticas para crear una línea / fuera de línea o entorno de prueba es esta mala práctica? A juzgar por lo poco que puedo encontrar sobre esto en la web supongo éste.

¿Fue útil?

Solución

normalmente en situaciones como la que se burlaría de las partes del código que fuera su solicitud de conexión. Esto le permite a la prueba en contra de los resultados esperados del servicio / sistema que se está conectando. También es más rápido para ejecutar las pruebas.

Hay un breve tutorial sobre burlarse con rspec aquí pero estoy seguro de que pueda encontrar un montón ti mismo.

Para la prueba de que los correos electrónicos son enviados existen otros enfoques si va a enviar a través ActionMailer. Hay una sección en la que en el carriles guía prueba.

Edit (en respuesta a los comentarios): Se puede poner un método en el TestHelper a las pruebas sólo se ejecutan cuando esté en línea. Algo así como:

def when_online
  if test_remote_connectivity
    yield
  else
    puts "Skipping test offline."
  end
end

A continuación, se le puede llamar como:

def test_facebook
  when_online do
    .....
  end
end

No estoy seguro del todo lo defienden pero podría hacer lo que quiera!

Otros consejos

webmock dentro de las pruebas / especificaciones que no desea conectar al recurso remoto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top