Testando respostas em RJS

Como testar o render desta ação?

1 def minha_acao
2   novo_valor = params[:novo_valor]
3   render :update do |page|
4     page.replace_html "div_valor_total", novo_valor
5   end
6 end

Simples:

1 def test_minha_acao
2   get :minha_acao, :novo_valor => '100.00'
3   assert_match Regexp.new("Element.update('div_valor_total', '100.00');"), @response.body
4 end

Mas achei um plugin muito legal que ajuda a fazer esses tipos de festa. Vos apresento o ARTS - Another RJS Testing System de Kevin Clark.

Veja como ficaria o código do teste:

1 def test_minha_acao
2   get :minha_acao
3   assert_rjs :replace_html, :div_valor_total, '100.00'
4 end

Na minha opinião, bem melhor! :)

Para instalar o plugin:

  1. Ir até a raiz da pasta do projeto
  2. Executar: $ script/plugin discover
  3. Executar: $ script/plugin install arts

Maiores detalhes está no guia no próprio blog do Kevin!

blog comments powered by Disqus