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:
- Ir até a raiz da pasta do projeto
- Executar:
$ script/plugin discover - Executar:
$ script/plugin install arts
Maiores detalhes está no guia no próprio blog do Kevin!