Como devo lidar com dependências on -line ao executar o RSPEC offline?
-
25-09-2019 - |
Pergunta
Gostaria de executar o RSPEC para testar meu código quando estiver conectado à Web e quando não estiver.
Infelizmente, existem alguns testes no aplicativo que dependem de ter uma conexão ao vivo - envio de e -mail, integração do Facebook etc.
Existe uma maneira de melhor prática de criar um ambiente de teste on-line/offline ou isso é uma prática ruim? A julgar pelo pouco, posso encontrar sobre isso na web, estou supondo o último.
Solução
Normalmente, em situações como isso, você zombaria das partes do código que se conectam fora do seu aplicativo. Isso permite que você teste com os resultados esperados do serviço/sistema para o qual você está se conectando. Também é mais rápido executar testes.
Há um breve tutorial sobre zombaria com o RSPEC aqui Mas tenho certeza que você pode encontrar bastante.
Para testar que os e -mails são enviados, existem outras abordagens se você estiver enviando através do ActionMailer. Há uma seção sobre isso no Guia de teste de trilhos.
Editar (em resposta ao comentário): você pode colocar um método em TestHelper
para executar apenas testes quando você estiver online. Algo como:
def when_online
if test_remote_connectivity
yield
else
puts "Skipping test offline."
end
end
Então você pode chamá -lo como:
def test_facebook
when_online do
.....
end
end
Não tenho certeza se eu o defendi completamente, mas pode fazer o que você quiser!
Outras dicas
Você poderia usar webmock Dentro dos testes/especificações, você não deseja conectar -se ao recurso remoto.