TDD com RSpec apresenta os principais problemas que podem ocorrer ao desenvolver software sem testes automatizados, como introdução de bugs, código difícil de manter e falta de confiança para alterações. Apresenta o TDD como uma solução que permite escrever testes antes do código para prever erros, melhorar o design e deixar o código mais limpo e confiável. Demonstra na prática como utilizar o framework RSpec para escrever testes unitários em Ruby, seguindo o ciclo red-green-refactor.
19. tdd com rspec
Essa palestra é pra você!
http://3.bp.blogspot.com/_YAefRFqmQKU/S85F77sD1KI/AAAAAAAAAJI/XB60ZTCF2ws/s1600/fail_square_wheel_tricycle_gtfo_n00b.jpg
26. Não usei TDD né
parceiro.
http://1.bp.blogspot.com/-1kLmITxLj4Q/TfZHfCLS5FI/AAAAAAAABUI/bEtZKAsoc5s/s1600/ro0naldo.jpg
27. tdd com rspec
Vamo
acertar! :)
teste quebrou
modificação alteração ok
28. tdd com rspec
2) Melhorar o código da app
http://asiasociety.org/files/systems-thinking.png
29. tdd com rspec
XGH (Extreme Go Horse)
http://gohorseprocess.files.wordpress.com/2011/02/horse21.png
30. tdd com rspec
3) Software mais clean
http://1.bp.blogspot.com/-ZR3B0a7whkM/TWXTcD4VOvI/AAAAAAAAAKA/QmoThFyL2PA/s1600/Interior-Design-Ideas-Screensaver.jpg
31. tdd com rspec
4) Confiança para alterar
http://wallpapers.free-review.net/wallpapers/54/Extreme_sport_from_rock_climbing_to_mountain_parachuting.jpg
32. tdd com rspec
5) teste automágicos
http://2.bp.blogspot.com/-ZSv4lhC25lI/TiHVVPtiBzI/AAAAAAAAANE/H6BwrKiwR28/s1600/mister-m-704820.jpg
37. tdd com rspec
O que é um teste?
É um conjunto de condições (código) usado para
identificar 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. ;)
38. tdd com rspec
Tipos de teste
Unitário Integração Aceitação
39. tdd com rspec
Teste Unitário
Testa as entradas e saídas esperadas
Unidade = menor parte de código testável
Unidade = métodos de objeto, uma função
53. tdd com rspec
Sentenças simples me daria
mais foco no teste
Nomes de teste
mais expressivos
Behaviour é mais
importante que test
Dan North
http://dannorth.net/introducing-bdd/
67. tdd com rspec
Todos os testes devem
estar na pasta spec e
terminar em _spec.rb
68. tdd com rspec
Anatomia
descreva “a verdade”
sentença
expectativa
69. describe
descreve de quem é o comportamento e agrupa
os exemplo
it
é a sentença que descreve um exemplo do
comportamento
should
verbo usado para dizer o que objeto “deveria”
retornar quando algo é feito
87. tdd com rspec
Should e Expectations
Expectations são as expectativas de como
nosso código deveria se comportar
should > deveria
should_not > não deveria
88. tdd com rspec
Matchers
Permitem escrever as
expectativas com uma
linguagem mais natural
89. tdd com rspec
Matchers
Apenas alguns
• be
• be_true
• be_false
• be_instance_of
• be_kind_of
• include
• respond_to
90. tdd com rspec
Segundo teste
Um post deve ter um status
97. tdd com rspec
Before e After
Inicializando objetos antes e depois de cada exemplo
before(:each) e after(:each)
permite executar comandos antes e depois de
cada exemplo
before(:all) e after(:all)
permite executar comandos antes e depois de
todos os exemplos e comportamentos
98. tdd com rspec
after(:each)
é rarararararamente usado