Strict Standards: Non-static method themeGluedIdeas_Subtle::initOptions() should not be called statically in /home/riopro/www/blog.riopro.com.br/wp-content/themes/gluedideas_subtle/header.php on line 19
Riopro Blog - » Rspec e os testes para diferentes formatos

Rspec e os testes para diferentes formatos



Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Essa será rápida. Há um comportamento estranho nos testes do Rspec para diferentes formatos de página. Se você usar:

get :index, :format => :xml

você terá uma resposta 406 “Not Acceptable”. Pior, no test.log vai ver que a url foi gerada corretamente. A solução é passar o teste para

get :index, :format => 'xml'

Que a url será testada corretamente e o teste não vai retornar uma resposta 406. Daqui pra baixo eu explico o motivo desses testes.

É raro necessitarmos testar o comportamento da action para diferentes tipos de resposta, mais acontece. E toda vez esqueço desse comportamento esquisito do Rspec. De vez em quando nos deparamos aqui na Riopro com actions que geram dados diferentes de acordo com o formato de resposta. Para explicitar, imagine que estamos mostrando a action index de uma lista de usuários nos formatos xml e html.


http://localhost/users.html
http://localhost/users.xml

Ambos os casos retornam a lista de usuários, certo? Bom, no exemplo que eu quero dar, às vezes não. Porque a versão html pode mostrar os dados paginados enquanto a versão xml mostrará todos os usuários. Continuando nosso exemplo, algo como:


respond_to do |format|
format.html do
@users = User.paginate( params[:page] )
end
format.xml do
@users = User.all
render :xml => @users.to_xml
end
end

Nesses casos, testes específicos para cada formato do controller são necessários. Só para documentar melhor, os exemplos dados acima usam o Rspec 1.2.8 e o Rspec-rails 1.2.7.1.

Informações e Links

Junte-se comentando, lendo o que os outros dizem ou colocando um link a partir do seu blog.


Outros Artigos

Strict Standards: Only variables should be assigned by reference in /home/riopro/www/blog.riopro.com.br/wp-includes/post.php on line 117
Ubuntu 9.10 e o novo Grub

Strict Standards: Only variables should be assigned by reference in /home/riopro/www/blog.riopro.com.br/wp-includes/post.php on line 117
Alternando entre pares de chaves de autenticação id_rsa no Ubuntu

Comente

Tire um tempo para comentar e nos dizer o que você acha. Alguns códigos HTML são permitidos para formatação.

Comentários dos Leitores

Seja o primeiro a comentar!