Skip to content
janeiro 14, 2009 / cassiomarques

Testando blocos de conteúdo nas views com o Rspec 1.1.12

Atualizei meu Rspec para a versão 1.1.12 e comecei a receber o seguinte warning nas specs das minhas views:


[](name) as an alias for capture(name) (TestResponse extension in rspec-rails)
is deprecated and will be removed in the rspec-rails release that follows the
rails-2.3.0 release.

Fui pesquisar e depois de muito rodar fui encontrar esse commit do Rspec que explica mais ou menos o que foi feito. Ainda assim eu não conseguia saber onde exatamente estava o problema. Dando um grep por ‘response’ nas minhas specs de view foi que caiu a ficha. O problema é que devido à uma alteração que foi feita ao Edge Rails (futuro 2.3) haverá uma incompatibilidade com o rspec-rails, o que forçou o Chelimsky a deprecar a utilização de código do tipo:

response[:left_column].should_not have_tag("a", "Apagar")

Onde :left_column indica algum bloco de conteúdo que você adicionou na sua view fazendo

<% content_for :left_column do %>
...
<% end %>

Por enquanto ainda dá pra testar como feito acima, mas além disso estar deprecado e já estar previsto para ser removido, quando você rodar suas specs verá um monte de warning feio. A solução é utilizar o método capture, que já existia anteriormente, sendo o [ ] apenas um alias para ele.

response.capture(:left_column).should_not have_tag("a", "Apagar")

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: