Cobertura de testes no Rails
Após terminar a minha suite de testes unitários, rodei o famoso “rake stats” para ver como estava a relação linhas de código x linhas de teste. Para a minha surpresa deu aproximadamente 1 para 1 (surpresa, pois achei que tivesse escrito muuuuuuuuuito mais teste do que código, rs…). Mas ainda queria ter mais informações. Gostaria de saber se os meus testes estavam indo na direção certa…
Bom, dei uma pesquisada e achei duas coisas interessantes: RCov e Heckle.
O RCov se parece com o Emma que temos no mundo Java. Ele roda os testes e verifica a cobertura, ou seja, analisa quais linhas do seu código, realmente estão sendo chamadas. Com ele é menos provável que você acabe testanto o seu teste, ao invés do seu código.
Para usá-lo é muito simples, basta instalá-lo via ruby gems:
gem install rcov
E depois chamá-lo dentro do seu diretório raiz da aplicação:
rcov test/*.rb
Isto irá criar um diretório chamado “coverage”. Entre nele e abra o index.html. Recomendo fortemente.
Já o Heckle, parece ser muito massa, pelo que entendi, ele serve para validar a eficácia do seu testes. Como ele faz isso ? Bom, isso é assunto para um próximo post.
