O David Chelimsky, core developer da equipe do RSpec, anunciou hoje o lançamento da versão 1.1.0 na lista de discussão do projeto. Essa versão é um grande marco para o projeto, trazendo novas funcionalidades e diversas melhorias:
- Story Runner: Como já falei aqui no blog, o projeto RBehave foi integrado ao core do RSpec, ganhando o nome de Story Runner. Com isso, o RSpec se torna um framework full-stack para BDD. Além de definir o comportamento do seu código, você também pode colaborar com seu cliente através de cenários executáveis, escrevendo os testes de aceitação para sua aplicação. A possibilidade de escrever story tests em texto puro é um grande passo nessa direção. Quem assistiu minha palestra no Rio on Rails teve a oportunidade de ver uma demonstração dessa funcionalidade.
- Integração com o Rails 2.0: A nova versão está integrada com o novo Rails 2.0. O plugin RSpec on Rails também foi atualizado para aproveitar a funcionalidade dos story tests na sua aplicação Rails.
- Transição fácil do Test::Unit: Uma funcionalidade bem interessante para quem está migrando do Test::Unit para o RSpec. Para migrar, você precisa apenas:
- Â
- incluir um ‘require spec’ no seu arquivo de teste;
- trocar a definição da subclasse de TestCase ‘class ClassContextTest < Test::Unit::TestCase’ por uma descrição do tipo ‘describe “class in context” do’;
- Converter os métodos de teste ‘def test_should_do_this’ por blocos ‘it “should do this” do’;
- Transformar asserts ‘assert_equal 2, some_calculation’ em shoulds ‘some_calculation.should == 2′;
- remover a dependência com Test::Unit, removendo o ‘require ‘test/unit’
- Exemplos encadeados: Agora você pode escrever um bloco “describe” dentro de outro.
Essa era a notÃcia que eu estava esperando desde minha primeira palestra sobre o assunto na RejectConf’SP) e, depois do lançamento do Rails 2.0 na semana passada, a integração com o RSpec finalmente chegou. Aproveitem!
Â
sudo gem update rspec
Â
Esse fim de semana tive a oportunidade de conhecer o Rio de Janeiro e participar do Rio on Rails, organizado pelo pessoal da ImproveIt. O sábado foi repleto de Ruby e Rails e no domingo tive um tempinho para passear e conhecer um pouco da cidade maravilhosa.
Â
Â
Os organizadores estão de parabéns. As palestras foram muito bem escolhidas e acho que deram um bom gostinho de como é divertido programar em Ruby e Rails para quem nunca tinha experimentado. Como sempre, eventos são uma excelente oportunidade de conhecer gente nova e trocar experiências e o Rio on Rails não deixou a desejar. Conheci o Ronaldo Ferraz, que falou um pouco sobre DSLs, o Demetrius Nunes, um dos pioneiros na adoção de Rails no Brasil, o Eduardo do site o Curioso, todo o pessoal da Improveit e do projeto Lucidus e mais um monte de gente que não vou lembrar do nome, mas que estavam presentes para fazer mais um grande evento da comunidade Rails no Brasil.
Â
Â
Minha palestra sobre BDD e RSpec foi uma evolução da palestra no RejectConf’SP. Com mais tempo para explicar os conceitos e fazer uma demonstração mais calma, acho que consegui passar uma idéia melhor da experiência de programar com BDD em Ruby e Rails. Os slides já estão disponÃveis aqui, assim como o esqueleto da aplicação demo que desenvolvi, com o passo-a-passo da demonstração. Quem quiser também consegue pegar a versão final do código apresentado.
Â
Â
Uma coisa legal que eu consegui terminar de preparar para a apresentação foram algumas das novidades do RSpec 1.1.0, como o Story Runner (integração com o RBehave, que eu apresentei no screencast do Dojo@SP), os plain text story tests e o protótipo do editor de story tests no browser.
Â
Â
Para rodar os exemplos, você precisará do Rails 1.2.6 (não fiz update pro 2.0 na palestra pois o patch da integração do RSpec com o Rails novo saiu na sexta a noite e não quis arriscar a demonstração ao vivo), do RSpec e do Rcov, caso queira verificar a cobertura (gem install rcov). Quem gostou da integração do Autotest com o Growl que eu usei na demonstração, pode pegar meus arquivos de configuração no Google Groups do Dojo@SP (não esqueça de instalar o Autotest com ‘gem install ZenTest’).
Â
Tags: bdd, brazil, conference, dojo, improveit, rails, rbehave, rio, rspec, ruby, talk