Behavior Driven Development com Ruby on Rails

541 visualizações

Publicada em

Apresentação feita para o FLISOL Salvador 2012.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
541
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
5
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Behavior Driven Development com Ruby on Rails

  1. 1. Um problema fácil de resolver Eles sempre começam assim
  2. 2. A solução0 Preciso de um gerenciador de coleções: 0 Comic books; 0 DVDs; 0 LEGOs; 0 Jogos;
  3. 3. Qualidadeatende aos requisitos
  4. 4. Comunicação LinguagemCliente Desenvolvedor
  5. 5. Comunicação HistóriasCliente Desenvolvedor
  6. 6. História #123Para conseguir mais informações de umacoleção de revistasComo um usuárioEu deveria ver um relatório das minhasrevistas por tipo.
  7. 7. História #123 proposição de valorPara conseguir mais informações de umacoleção de revistasComo um usuárioEu deveria ver um relatório das minhasrevistas por tipo.
  8. 8. História #123Para conseguir mais informações de umacoleção de revistas papelComo um usuárioEu deveria ver um relatório das minhasrevistas por tipo.
  9. 9. História #123Para conseguir mais informações de umacoleção de revistasComo um usuárioEu deveria ver um relatório das minhasrevistas por tipo. funcionalidade
  10. 10. Qualidadefuncionar como esperado
  11. 11. Test Driven Development Teste Faça o que teste falha passar Refatore
  12. 12. Testes de aceitação
  13. 13. História #123Apresentar todos os gêneros de revistas com asoma realDeveria mostrar o # total de revistasDeveria possuir o link para nova revistaDeveria possuir o link para todas as revistas
  14. 14. Wireframes
  15. 15. Behavior Driven Development Teste Faça oAceitação unitário testeque falha que falha passar Refatore
  16. 16. Escolhendo as armas Ruby on Rails, Cucumber, RSpec, Webrat
  17. 17. Mãos à obraConfigurando o ambiente
  18. 18. Instalação Lembre-se de ter a última versão do ruby instalado. 0 Rails:$ gem install rails 0 RSpec:$ gem install rspec 0 Cucumber$ gem install cucumber
  19. 19. Criando uma nova aplicação 0 Para criar uma nova aplicação Rails é simples:$ rails new manga_collection -T 0 Pronto! Para testar é executar:$ cd manga_collection$ rails s 0 No navegador acesse http://localhost:3000
  20. 20. Gerenciando os pacotes 0 Altere o arquivo Gemfile responsável pelos gerenciamento de pacotes com as seguintes linhas:group :test do gem database_cleaner, 0.7.2 gem rspec-rails, 2.9.0 gem cucumber-rails, 1.3.0 gem webrat, 0.7.3end 0 Precisamos instalar as novas dependências:$ bundle install
  21. 21. O ambiente de testes 0 Vamos instalar o RSpec e o Cucumber na aplicação$ rails g rspec:install$ rails g cucumber:install
  22. 22. Hora de entender
  23. 23. Adicionando funcionalidade
  24. 24. Rails scaffold 0 Como exemplo vamos usar a funcionalidade de scaffold para modelar o sistema.$ rails g scaffold manga name:string volume:integer genre:string
  25. 25. Escreva o pepino
  26. 26. Veja falhar 0 Execute:$ cucumber features/ 0 A princípio ele vai apenas informar que existem passos não definidos; 0 Crie um arquivo .rb em features/step_definitions; 0 Implemente os passos e veja os testes falharem;
  27. 27. manga.rb
  28. 28. cucumber features/
  29. 29. Faça o teste passar0 Implementar um controle para relatórios de mangá;0 Página html.erb com as expectativas no wireframe;0 Rota apontando para a página; Enough is enough!!!
  30. 30. Refatorar sem medo0 Princípio: Encontrar code smells0 Exemplos: 0 Variáveis temporárias; 0 Longos métodos; 0 Longas classes;0 Os testes servem de suporte para refatoração!
  31. 31. Cucumber ou RSpec? AMBOS
  32. 32. Obrigado!Twitter: @marcoafilhoGitHub: github.com/marcoafilhoEmail: marcoafilho@gmail.com

×