Desabilite acesso a URLs reais em seus testes com Fakeweb
Em um dos projetos que estou trabalhando atualmente, a suite de testes começou a demorar a executar, papo de 5 minutos. Então, habilitando a opção de profile do RSpec para identificar quais testes estavam lentos, identifiquei que eram os testes referentes a importação de feeds. Então, o que descobri? Que na verdade, os testes estavam fazendo requisições reais dos feeds. Então, primeiro passo é, desabilitar acesso a URLs reais e nada como o bom e velho Fakeweb para ajudar nessa parte.
Dois passos simples
No Gemfile:
1
gem "fakeweb", :group => :test
E no spec/spec_helper.rb:
1
FakeWeb.allow_net_connect = false
Agora toda a suite roda em 30 segundos. Claro, próximo passo é arrumar os testes que estão quebrando e nesse caso. MOCK NELES!