Como alguns já viram no último podcast eu costumo defender muito os projetos e sistemas que gosto. O GitHub pode não ter a importancia que o RubyForge “teve” para a comunidade Ruby no mundo, mas acredito seriamente no valor deste projeto e aposto minhas fichas nele.
O fato dele ser um projeto comercial só aumenta ainda mais minha confiança, porque ele é um projeto opensource-like com a diferença de ser mantido não somente pela boa vontade dos desenvolvedores, mas sim por dinheiro, e isto é muito bom porque estimula a “boa vontade”, se é que vocês me entendem.
Além disso o GitHub evoluiu os projetos opensource além do que o RubyForge conseguiu, tornou muito mais fácil contribuir para um projeto, criar forks, entrar em contato com desenvolvedores, e tudo de uma forma que estimula o social.
Outro projeto que muito me agrada é o Shoulda, e vou explicar o motivo disto. O Sholda diferente do RSpec, por exemplo, foi feito para o Rails (embora você possa usá-lo em outros tipos de projetos isto não faz muito sentido) e isto dá ao projeto uma liberdade que não pode ser aplicada ao RSPec que precisa ser mais genérico.
Claro que existem iniciativas semelhantes aplicadas ao RSpec, mas nenhuma é tão madura.
Outra vantagem é que o Shoulda não precisa alterar nada em seu projeto Rails, já que ele trabalha em cima do Test::Unit que é o framework padrão para testes no Rails. E se você já costuma criar testes neste framework, a curva de aprendizado é perto de zero.
E agora a terceira grande vantagem é a possibilidade de criar macros para testes. Funciona mais ou menos assim: Você cria um plugin que adiciona uma certa funcionalidade a um objeto do ActiveRecord, então você cria uma macro de testes para isto e a coloca dentro de uma pasta shoulda_macros na raiz do seu gem ou plugin. Assim, os usuários do seu projeto só precisam incluir uma chamada de método nos testes dos modelos que implementarem estas novas funcionalidades e tudo estará seguro.
Por exemplo, se você estiver usando o plugin Paperclip, basta adicionar a seguinte linha no arquivo de teste do modelo para garantir que tudo vai funcionar bem:
end
Sou tão fõ do projeto que mantenho, junto com o Dr. Nic, os Bundles do TextMate para o Shoulda e posso garantir que ele está completo. Já enviei alguns patchs para o projeto principal também.
Se tem coisas que eu não sou é preciosista ou saudosita. Sou adépto ao novo, e quando considero que algo novo é melhor do que o antigo não tenho medo de mudar. Não é porque algo me serviu durante muitos anos que devo continuar usando-o o resto da vida, se fosse assim eu não teria comprado um travesseiro novo, nem um macbook, nem uma TV nova, nem um…
8 Comentários em "Porque eu defendo o Shoulda"
… nem usando Rails
Acho que estás definitivamente apaixonado pelo Github e pelo Shoulda.
… Quero ouvir a resposta do Akita no próximo podcast….
Vocês querem é ver o circo pegar fogo… isto sim.
Rapaz, eu acabei de entrar em um novo projeto em RoR. Estava torcendo para que utilizassem o Shoulda, mas é RSpec mais uma vez.
Eu tbm curto muito o Shoulda. E só enxergo vantagens em cima do RSpec. Ainda não ouvi seu podcast para ver se alguém apresenta vantagens do RSpec com relação ao Shoulda, que me faça dar mais créditos ao RSpec.
Em todo caso, eu compartilho da mesma opinião que a sua.
Experimentarei esse Shoulda
Como disse o Tammer Saleh, criador do Shoulda: “Testar uma linha de código com uma linha de código”. RSpec é muito bom, mas entulha demais.
Como tu mesmo disse, Shoulda é feito pra Rails, do geito Rails. É argumento suficiente para usar.
E Github é uma ferramenta poderosa como GIT mais “interação social” entre as partes, era o que opensource precisava: Visibilidade.
[...] projeto open-source que também participo e gosto muito é o Shoulda. Já tentei explicar no passado o motivo de gostar tanto deste projeto, mas acho que tem muito a ver com uma questão de puro [...]
Deixe o seu comentário!