• Save
[RockAndRails] TDD com RSpec
Upcoming SlideShare
Loading in...5
×
 

[RockAndRails] TDD com RSpec

on

  • 2,577 views

Palestra ministrada no Rock and Rails, primeiro evento de Ruby/Rails do ES.

Palestra ministrada no Rock and Rails, primeiro evento de Ruby/Rails do ES.

Statistics

Views

Total Views
2,577
Views on SlideShare
2,572
Embed Views
5

Actions

Likes
7
Downloads
0
Comments
2

3 Embeds 5

http://www.hanrss.com 3
http://a0.twimg.com 1
http://paper.li 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

[RockAndRails] TDD com RSpec [RockAndRails] TDD com RSpec Presentation Transcript

  • tdd com rspecTDD com RSpec
  • tdd com rspecQ vergonha @leohackin RaquinLéo Hackin (Rá-kim) Héquin
  • tdd com rspec View slide
  • tdd com rspec View slide
  • tdd com rspechttp://4.bp.blogspot.com/_KzayWGqkmgk/TEHXrMxoa3I/AAAAAAAAAfE/ON3rTQb-r20/s400/papel-higienico-cuba.jpg
  • tdd com rspec TDDTest Driven Development Desenvolvimento orientado a testes Jura???
  • tdd com rspec Escreve código Testa no browserDeu certo? Deu erro? #win! Corrige
  • tdd com rspec Problema 1Modificações podem gerar BUGS http://blog.arena41.com/wp-content/uploads/2010/03/computer-bug.png
  • tdd com rspec bug #2 Eu esperava :) Uhnn!Estranho esse! bug #1modificação alteração ok erro #1O cliente ligou! oO Viiixi! Zuou! erro em prod.
  • http://givenmydruthers.files.wordpress.com/2010/02/snowball.jpg
  • tdd com rspec Problema 2Testar manualmente é cansativo http://anderssauro.com/wp-content/midia/a6f091ef93f5_1344B/boring.jpg
  • tdd com rspec Problema 3Humanos fazendo testes http://2.bp.blogspot.com/-7_Sojkl9GKc/TebFfeHFzKI/AAAAAAAAARk/WBz-6PmwZyw/s1600/wtf5.jpg
  • Deu pau cara! :( Ráááááá! http://1.bp.blogspot.com/-1UYXDHKjaCQ/TdLJA6uFbNI/AAAAAAAACAI/4814xUBjNFk/s1600/Sergio%2BMallandro%2Bfoto.JPG
  • tdd com rspec Problema 4$$$$$$$$$$$$$$$$$$$$$$$$$$$ Tempo é dinheiro
  • http://digitalparenting.files.wordpress.com/2010/12/cute-boy-playing-video-games-computer1.jpg tdd com rspec
  • tdd com rspec Problema 5O programador novo http://www.doublecrossstudios.co.uk/blogs/charlie/wp-content/uploads/2009/08/bustorbail.jpg
  • Problema 6 Chefes não gostam de TDDhttp://downloads.open4group.com/wallpapers/chefe-do-homer-assustador-bd76b.jpg
  • tdd com rspecProblemas reais! Pissit! Quem falar ganhar prêmio!
  • tdd com rspecEssa palestra é pra você! http://3.bp.blogspot.com/_YAefRFqmQKU/S85F77sD1KI/AAAAAAAAAJI/XB60ZTCF2ws/s1600/fail_square_wheel_tricycle_gtfo_n00b.jpg
  • tdd com rspecMas se você já testa elaé pra você também! :)
  • tdd com rspec TDDDesenvolvimento orientado a testesVocê testa primeiro! ;)
  • XP
  • tdd com rspecUia! Mas porque testar antes tio? Pode sim. A regra é clara!
  • tdd com rspecPra que testar software antes de escrever o código?
  • 1) Prever erros http://mondoauto.blogosfere.it/images/crashtest500.jpg
  • Não usei TDD né parceiro.http://1.bp.blogspot.com/-1kLmITxLj4Q/TfZHfCLS5FI/AAAAAAAABUI/bEtZKAsoc5s/s1600/ro0naldo.jpg
  • tdd com rspec Vamo acertar! :) teste quebroumodificação alteração ok
  • tdd com rspec2) Melhorar o código da app http://asiasociety.org/files/systems-thinking.png
  • tdd com rspecXGH (Extreme Go Horse) http://gohorseprocess.files.wordpress.com/2011/02/horse21.png
  • tdd com rspec3) Software mais clean http://1.bp.blogspot.com/-ZR3B0a7whkM/TWXTcD4VOvI/AAAAAAAAAKA/QmoThFyL2PA/s1600/Interior-Design-Ideas-Screensaver.jpg
  • tdd com rspec 4) Confiança para alterarhttp://wallpapers.free-review.net/wallpapers/54/Extreme_sport_from_rock_climbing_to_mountain_parachuting.jpg
  • tdd com rspec5) teste automágicos http://2.bp.blogspot.com/-ZSv4lhC25lI/TiHVVPtiBzI/AAAAAAAAANE/H6BwrKiwR28/s1600/mister-m-704820.jpg
  • tdd com rspec
  • Tátudo testado chefe! Eu juro....
  • tdd com rspec6) ajuda novos membros http://wallpapers.free-review.net/wallpapers/33/Programmer.jpg
  • tdd com rspec
  • tdd com rspec O que é um teste?É um conjunto de condições (código) usado paraidentificar erros e garantir que os requisitos de um software sejam plentamente atendidos. É um bloco de instruções para testar se a app está funcionando como deve e sem erros. ;)
  • tdd com rspec Tipos de testeUnitário Integração Aceitação
  • tdd com rspec Teste Unitário Testa as entradas e saídas esperadasUnidade = menor parte de código testávelUnidade = métodos de objeto, uma função
  • tdd com rspec Fluxo do TDD REDREFACTOR GREEN
  • tdd com rspec REDEscreva um teste que falhe
  • tdd com rspec GREENEscreva o código necessário e faça o seu teste passar
  • tdd com rspec REFACTORMelhore o código que você escreveu :)
  • tdd com rspecFrase chocante: TDD não é só sobre escrever testes e testar
  • tdd com rspecTDD é sobre design.
  • tdd com rspechttp://www.starzlife.com/files/2010/03/ricky-martin.jpg
  • tdd com rspec... de software ...
  • tdd com rspechttp://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2011/7/1/1309538517951/Ricky-Martin.-007.jpg
  • http://hidrotec-es.com.br/denisferrari/wiki/wp-content/uploads/2010/07/tdd.jpg tdd com rspec O ciclo red->green->refactorpermite você refatorar e repensar sua app constantemente
  • tdd com rspecShow me the code
  • tdd com rspec
  • tdd com rspecMeio difícil de ler eentender bem né?
  • tdd com rspec Sentenças simples me daria mais foco no teste Nomes de teste mais expressivos Behaviour é mais importante que test Dan Northhttp://dannorth.net/introducing-bdd/
  • tdd com rspec BDDBehaviour Driven Development
  • tdd com rspecBDD Descrever comportamentoPensar no design e documentar o código Tornar o TDD mais acessível e efetivo
  • tdd com rspec
  • tdd com rspecMais fácil né?
  • tdd com rspec RSpecFramework BDD para Ruby/RoR
  • tdd com rspecRSpec helps you do the TDD part of thatequation, focusing on the documentation anddesign aspects of TDD. David Chelimsky
  • tdd com rspecDescreve o comportamentocomo se fosse uma estória comportamento == nosso teste :)
  • tdd com rspechttp://carplace.virgula.uol.com.br/wp-content/uploads/2010/05/chevrolet-camaro-hennessey-01.jpg
  • tdd com rspec Instalação $ gem install rspec$ gem install rspec-rails
  • tdd com rspec No seu projeto Railsgroup :test, :development do gem "rspec-rails", "~> 2.6"end inserir no arquivo Gemfile
  • tdd com rspecRodar na raiz do projeto $ rails g rspec:install
  • tdd com rspecEscreva um teste spec/truth_spec.rb
  • tdd com rspecRode o spec! :D
  • tdd com rspecTodos os testes devem estar na pasta spec e terminar em _spec.rb
  • tdd com rspec Anatomiadescreva “a verdade” sentença expectativa
  • describedescreve de quem é o comportamento e agrupaos exemploité a sentença que descreve um exemplo docomportamentoshouldverbo usado para dizer o que objeto “deveria”retornar quando algo é feito
  • tdd com rspecAo bloco de teste damos o nome de exemplo
  • descreva carrodeveria ter rodasdeveria ligar quando rodar a chavedeveria ter uma marcadeveria ter um modelo
  • tdd com rspec Problema realPost para um blog
  • tdd com rspec Post deveria ter ...• Um título• Um texto• Um status• O status deve ser “publicado” ou “rascunho”
  • tdd com rspec Post deveria...• dizer se está publicado ou não
  • Live Coding
  • tdd com rspec Criando o model$ rails g model post titulo:stringstatus:string texto:text
  • tdd com rspec Gerando a tabela$ rake db:migrate
  • tdd com rspec
  • tdd com rspecRode os testes $ rake spec
  • tdd com rspec Primeiro testeUm post deve ter um título
  • tdd com rspecEscreva um teste que falhe spec/models/post_spec.rb
  • tdd com rspecRode os testes $ rake spec
  • tdd com rspecFaça o teste passar app/models/post.rb
  • tdd com rspecRode os testes $ rake spec
  • Irado Manolo!
  • tdd com rspecPrecisa refatorar? spec/models/post_spec.rb
  • tdd com rspec Should e ExpectationsExpectations são as expectativas de comonosso código deveria se comportarshould > deveriashould_not > não deveria
  • tdd com rspec MatchersPermitem escrever asexpectativas com umalinguagem mais natural
  • tdd com rspec Matchers Apenas alguns• be• be_true• be_false• be_instance_of• be_kind_of• include• respond_to
  • tdd com rspec Segundo testeUm post deve ter um status
  • tdd com rspecEscreva um teste que falhe spec/models/post_spec.rb
  • tdd com rspecRode os testes $ rake spec
  • tdd com rspecFaça o teste passar app/models/post.rb
  • tdd com rspecRode os testes $ rake spec
  • tdd com rspecPrecisa refatorar? spec/models/post_spec.rb
  • tdd com rspecAlgo de errado não está certo spec/models/post_spec.rb
  • tdd com rspec Before e After Inicializando objetos antes e depois de cada exemplobefore(:each) e after(:each)permite executar comandos antes e depois decada exemplobefore(:all) e after(:all)permite executar comandos antes e depois detodos os exemplos e comportamentos
  • tdd com rspec after(:each)é rarararararamente usado
  • tdd com rspecRefatorando :D spec/models/post_spec.rb
  • tdd com rspecRode os testes $ rake spec
  • tdd com rspec Terceiro teste O status deve ser“publicado” ou “rascunho”
  • tdd com rspecEscreva um teste que falhe spec/models/post_spec.rb
  • tdd com rspecRode os testes $ rake spec
  • tdd com rspecFaça o teste passar app/models/post.rb
  • tdd com rspecRode os testes $ rake spec
  • tdd com rspecOpa! Refactoring! app/models/post.rb
  • tdd com rspecOpa! Refactoring! app/models/post.rb
  • tdd com rspecRode os testes $ rake spec
  • tdd com rspec Quarto testeO post deve ter um texto Quem se habilita?
  • tdd com rspec Quinto testeDizer se está publicado Mais alguém se habilita?
  • tdd com rspecEscreva um teste que falhe spec/models/post_spec.rb Amazing!!!
  • tdd com rspecRode os testes $ rake spec
  • tdd com rspecFaça o teste passar app/models/post.rb
  • tdd com rspecRode os testes $ rake spec
  • tdd com rspecE por ai vai ... :)
  • tdd com rspec Próximos passos• Mock/Stubs• Matchers mais avançados• Fixtures• Testes de controller• Helpers• Boas práticas de agrupamento
  • tdd com rspec O que ler• http://rspec.info• http://howtocode.com.br/ebooks/ rspec• http://pragprog.com/book/nrtest/rails- test-prescriptions
  • tdd com rspec
  • tdd com rspec Valew! :Dleohackin@gmail.com