Domanda

Vorrei correre RSpec per testare il mio codice sia quando sono connesso al web e, quando non lo sono.

Purtroppo ci sono alcuni test nell'applicazione che dipendono da avere una connessione attiva - l'invio di e-mail, l'integrazione di Facebook, ecc

C'è un modo best-practice per creare una linea / ambiente di test in linea o si tratta di cattiva pratica? A giudicare da quanto poco posso trovare su questo sul web Sto indovinando quest'ultimo.

È stato utile?

Soluzione

In genere in situazioni del genere che si sarebbe deridere le parti del codice che di connessione al di fuori dell'applicazione. Questo vi permette di testare contro i risultati attesi dal servizio / sistema che si sta connettendo. E 'anche più veloce per eseguire test.

C'è un breve tutorial su beffardo con RSpec qui ma sono sicuro che si può trovare un sacco da soli.

Per la prova che le email vengono inviate ci sono altri approcci se si sta inviando attraverso ActionMailer. C'è una sezione su che in rotaie testare guida .

EDIT (in risposta a un commento): Si potrebbe mettere un metodo in TestHelper a test eseguiti solo quando si è online. Qualcosa di simile:

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

Poi si può chiamare come:

def test_facebook
  when_online do
    .....
  end
end

Non so se ho del tutto sostengono, ma si potrebbe fare quello che vuoi!

Altri suggerimenti

Si potrebbe usare webmock all'interno delle prove / specifiche che non si desidera la connessione alla risorsa remota.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top