Teste de integração com Rspec 1.x e Capybara na sua app Rails

Este não é daqueles posts que explicam o que é rspec, testes, diferenças entre teste funcional, integração e etc. Este post é só uma rapidinha, pra quem já conhece rspec e capybara.

A documentação do Capybara é boa, mas deixa a desejar nas instruções de como integrá-lo somente com rspec. Com a ajuda do George Guimarães da Plataforma, cheguei num passo a passo mega simples.

No config/environments/test.rb declare:

config.gem "rspec",            :version => "= 1.3.0", :lib => false
config.gem "rspec-rails",      :version => "= 1.3.2", :lib => false
config.gem "capybara",         :version => "= 0.3.9", :lib => false

No spec/spec_helper.rb coloque:

require 'capybara/rails'
[...]
Spec::Runner.configure do |config|
 
  [...]
  config.include(Capybara, :type => :integration)
 
end

Pronto! Isto é o suficiente para utilizar o Capybara nos testes de integração.
Para finalizar, você pode montar um teste simples de validação. Por exemplo:

Crie spec/integration/site_spec.rb e coloque:

require 'spec_helper'
 
describe "Site sample" do
 
  context "root" do
 
    before do
      visit root_url
      save_and_open_page
    end
 
    it "should have Hello" do
      page.should have_content("Hello")
    end
 
  end
 
end

Para executar somente os testes de integração:

rake spec:integration

have_content e um hot tip que pode te salvar muitas horas !

Caso aconteça o erro:

undefined method `have_content' for #<ActionController::Integration::Session:0xb618ad10>

Graças a esta mensagem Can’t make matchers work with cucumber and rails 2.3.2, descobri que o have_content não funciona com o rails 2.3.2, eu resolvi o problema fazendo um upgrade para a última versão do rails. #ficaadica

Dúvidas, melhorias, sugestões e elogios são sempre bem vindos !

If you enjoyed this post, please consider leaving a comment or subscribing to the RSS feed to have future articles delivered to your feed reader.
Esta entrada foi publicada em quick tips, rails, web e marcada com a tag , , , . Adicione o link permanente aos seus favoritos.

2 respostas a Teste de integração com Rspec 1.x e Capybara na sua app Rails

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">