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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top