Testando respostas em RJS
Como testar o render desta ação?
1
2
3
4
5
6
def minha_acao
novo_valor = params[:novo_valor]
render :update do |page|
page.replace_html "div_valor_total", novo_valor
end
end
Simples:
1
2
3
4
def test_minha_acao
get :minha_acao, :novo_valor => '100.00'
assert_match Regexp.new("Element.update('div_valor_total', '100.00');"), @response.body
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
2
3
4
def test_minha_acao
get :minha_acao
assert_rjs :replace_html, :div_valor_total, '100.00'
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!