Boas Praticas de Testes, Bad Smell e Outros Macetes
-
Upload
ismael -
Category
Technology
-
view
153 -
download
1
Transcript of Boas Praticas de Testes, Bad Smell e Outros Macetes
![Page 1: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/1.jpg)
BOAS PRÁTICAS DE TESTES, BAD SMELL E OUTROS MACETES
Por Ismael Soares
![Page 2: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/2.jpg)
POR QUE VOCÊ TESTA SEU CÓDIGO?
![Page 3: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/3.jpg)
ME AJUDA NO DESIGN
GARANTIR REGRAS DE NEGÓCIO
ENTENDER O NEGÓCIO
AJUDA RESOLVER PROBLEMAS COMPLEXOS
ETC.
![Page 4: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/4.jpg)
OK, MAS COMO O TESTE TE AJUDA COM ESTAS COISAS?
![Page 5: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/5.jpg)
FEEDBACK!
![Page 6: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/6.jpg)
VOCÊ OS ESCUTA?
![Page 7: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/7.jpg)
Mike Cohn (Succeeding with Agile)
PIRÂMIDE DE TESTES
![Page 8: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/8.jpg)
UNIDADE
![Page 9: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/9.jpg)
MAS O QUE É UMA UNIDADE?
![Page 10: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/10.jpg)
UMA UNIDADE DE NEGÓCIO É UM COMPORTAMENTO DO SEU CÓDIGO!
______________________________ Martin Fowler
![Page 11: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/11.jpg)
NÃO É UMA CLASSE OU UM MÉTODO
Thought Works
![Page 12: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/12.jpg)
VOCÊ DEVE SE PREOCUPAR MAIS COM O QUE
DO QUE COM COMO
![Page 13: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/13.jpg)
ESCREVENDO TESTES MELHORES
![Page 14: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/14.jpg)
Referência:
https://info.thoughtworks.com/praticas-e-tendencias-em-teste-ebook.html
![Page 15: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/15.jpg)
# TRATE O CÓDIGO DE TESTES COMO DE PRODUÇÃO
https://8thlight.com/blog/uncle-bob/2013/09/23/Test-first.html
TEST FIRST
![Page 16: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/16.jpg)
TESTS ARE SPECS
![Page 17: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/17.jpg)
ROTTEN TESTS
![Page 18: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/18.jpg)
SIMPLE DESIGN
![Page 19: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/19.jpg)
# UTILIZE UM PADRÃO DE TESTES
![Page 20: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/20.jpg)
OS 3 AS - ARRANGE, ACT E ASSERT
Organizar: Configure suas informações e qualquer outro dado necessário ao teste
Agir: Execute a ação que vai validar
Verificar: Veja o que era esperado realmente aconteceu
![Page 21: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/21.jpg)
PADRÃO BDD
![Page 22: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/22.jpg)
# NÃO CONVIVA COM TESTES INSTÁVEIS
![Page 23: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/23.jpg)
ERADICATING NON-DETERMINISM IN TESTS
http://martinfowler.com/articles/nonDeterminism.html
Não passa segurança
Precisa de interpretação
Vira paisagem com tempo
![Page 24: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/24.jpg)
# UTILIZE DUBLES DE TESTES
http://rkmael.com/2014/11/13/dubles_testes/
![Page 25: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/25.jpg)
http://rkmael.com/2014/11/17/comparando-dubles-testes/
COMPARANDO DUBLES
![Page 26: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/26.jpg)
# CUIDADO COM EXCESSO DE MOCKS
![Page 27: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/27.jpg)
SEM PERCEBER VOCÊ PODE ESTAR MOCKANDO UM COMPORTAMENTO
![Page 28: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/28.jpg)
QUANDO USAR MOCKS?
Quando o comportamento não é responsabilidade da unidade testada.
Exemplo: um Service chamando outro, um Service chamando um DAO, um Controller chamando um Service, etc.
![Page 29: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/29.jpg)
E UMA REGRA CHAMADA DENTRO DE UM MODEL/ENTITY, DEVO MOCKAR?
![Page 30: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/30.jpg)
MÁS PRÁTICAS
![Page 31: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/31.jpg)
# TUDO NO MÉTODO BEFORE
![Page 32: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/32.jpg)
@Before -‐ uma vez antes de cada teste
@BeforeClass -‐ uma vez apenas antes de todos os testes
@After -‐ uma vez depois de cada teste
@AfterClass -‐ uma vez apenas depois de todos os testes
![Page 33: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/33.jpg)
#NÃO EVIDENCIAR O CENÁRIO
![Page 34: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/34.jpg)
ERRADO
CORRETO
![Page 35: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/35.jpg)
![Page 36: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/36.jpg)
![Page 37: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/37.jpg)
#CENARIOS GIGANTES
![Page 38: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/38.jpg)
![Page 39: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/39.jpg)
![Page 40: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/40.jpg)
SE O CENÁRIO ESTA MUITO GRANDE É PORQUE SEU
CÓDIGO ESTÁ MUITO ACOPLADO
![Page 41: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/41.jpg)
#CENARIOS IMPRONUNCIAVEIS
![Page 42: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/42.jpg)
deveRetornarMensagemDeValidacaoDaDataDeEmissaoEBloquearANotaFiscalQuandoOUsuarioNaoTiverPermissoesEADataDeEmissaoUltrapassarADataParametrizadaEOStatusDeRecebimen
toForDiferenteDeReceberComDataAcimaDoParametrizado
![Page 43: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/43.jpg)
SE VOCÊ NÃO CONSEGUE EXPRESSAR DE FORMA
SIMPLES UM CENARIO, É SINAL DE QUE ESTA MUITO
COMPLEXO
![Page 44: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/44.jpg)
#TESTE DE EXCEPTION SE VALIDAR A MENSAGEM
![Page 45: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/45.jpg)
ERRADO
![Page 46: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/46.jpg)
CORRETO
![Page 47: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/47.jpg)
#NÃO VALIDAR A ORDEM DAS INTERAÇÕES
![Page 48: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/48.jpg)
ERRADO
![Page 49: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/49.jpg)
CORRETO
![Page 50: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/50.jpg)
#ALTERAR O CÓDIGO DE PRODUÇÃO APENAS POR CAUSA DOS TESTES
![Page 51: Boas Praticas de Testes, Bad Smell e Outros Macetes](https://reader034.fdocuments.net/reader034/viewer/2022042611/58f0fa941a28ab1a238b4603/html5/thumbnails/51.jpg)
DEIXAR O MÉTODO DEFAULT PRA TESTA-LO
CRIAR SETTER PARA FAZER INJEÇÃO DE DEPENDÊNCIA
CRIAR MÉTODO PARA ALTERAR O ESTADO DO CÓDIGO DURANTE O TESTE