Publicado por Rafael Rosa em 24 de November de 2009
Riot – Testes unitários rápidos e expressivos
O Riot é um novo framework para testes em Ruby criado por Justin Knowlden com o intuito de criar testes que rodem mais rápido. Justin estava frustrado com a demora na execução de seus testes, mesmo utilizando técnicas de factories, mocks e evitando acesso ao banco de dados. Ele compreendeu que as pessoas desistem de usar ou não adicionam novos testes quando eles demoram muito para rodar, o que não é nada bom.
No Riot, cada teste consiste em um bloco que forma uma única asserção sobre o tópico do teste, mantendo-os focados. Eles são executados num contexto específico, e código de setup só é executado uma vez por contexto, contribuindo para aumentar a velocidade de execução dos testes, e, diferente de outros frameworks como o Shoulda, que dependem ou são baseados no Test::Unit, a abordagem diferente do Riot visa sempre mais velocidade. Nas comparações feitas pelo Justin, o Riot é mais ou menos duas vezes mais rápido do que o Test::Unit.
Veja um exemplo de teste com o Riot (extraído do README):
context "a new user" do
setup { User.new(:email => 'foo@bar.com') }
asserts("email address") { topic.email }.equals('foo@bar.com')
end
Seu extenso e abrangente README também inclui vários exemplos e detalhes de como modificar seu Rakefile para usá-lo Riot com diferentes frameworks. A documentação completa pode ser obtida online aqui.
Você também pode usá-lo como gem, baixando-a do Gemcutter:
sudo gem sources -a http://gemcutter.org sudo gem install riot
O Justin também tem outro projeto-irmão chamado Riot Rails, que inclui algumas macros específicas para testar aplicações Rails, e Alex Young fez um port do Riot para Javascript que vale uma olhada. Ele também escreveu um artigo com sua opinião sobre o Riot onde explica como ele pode reduzir a redundância em testes.

Clique aqui para adicionar ao del.icio.us


24 de November de 2009 às 16:45
[...] This post was mentioned on Twitter by Ruby Inside Brasil and Gabriel Sobrinho, Mauricio Voto. Mauricio Voto said: RT: @rubyinside_br: Riot - Testes unitários rápidos e expressivos http://bit.ly/8LkWxR [...]