Publicado por Rafael Rosa em 24 de November de 2009

Riot – Testes unitários rápidos e expressivos

JustinO 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.

Apenas Um Comentário para “Riot – Testes unitários rápidos e expressivos”

  1. #1
    Tweets that mention Riot - Testes unitários rápidos e expressivos -- Topsy.com Disse:

    [...] 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 [...]

Deixe um Comentário