Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[GURU/SP 16/09] Como não escrever seus testes

Camila Campos
September 16, 2017

[GURU/SP 16/09] Como não escrever seus testes

Sabemos que escrever testes automatizados é extremamente importante, pois, entre outras coisas, eles garantem a qualidade do nosso código e o funcionamento da nossa aplicação. Apesar disso, muitas vezes acabamos com uma suíte de testes que, além de ser difícil de entender e manter, não é confiável. Nessa talk, foi mostrado como reconhecer e evitar alguns dos problemas mais comuns que nos fazem odiar nossos testes, além de dar algumas dicas de como melhorá-los.

PS. Gifs não funcionam no speaker deck e isso me deixa muito triste, porém vida que segue.

Camila Campos

September 16, 2017
Tweet

More Decks by Camila Campos

Other Decks in Programming

Transcript

  1. O que são? Pra que servem? Como organizar? O que

    comem? O que são? Como se organizam? Pra que servem? O que comem?
  2. TESTE é um bocado de código não testado que garante

    que seu código “real” funcione
  3. Teste é um código que só faz 3 coisas 1.

    Ajeita o que precisa para o teste funcionar;
  4. Teste é um código que só faz 3 coisas 1.

    Ajeita o que precisa para o teste funcionar; 2. Executa a ação que você quer testar;
  5. Teste é um código que só faz 3 coisas 1.

    Ajeita o que precisa para o teste funcionar; 2. Executa a ação que você quer testar; 3. Verifica se aconteceu o que você esperava.
  6. UI - Testes Ponta a ponta Testam a interação de

    um usuário real com o software Garantem o funcionamento da aplicação como um todo Ser o mais realista possível (SEM MOCKS/STUBS/FAKES/ETC)
  7. Unit - Testes de Unidade Testam cada unidade do sistema

    isoladamente MOCK/STUB/FAKE PRA TUDO! Isolam falhas Guia o design do código (através do TDD)
  8. Service - Testes de Integração Testam o comportamento de 2

    ou mais unidades Sem a maior parte das desvantagens do end-to-end
  9. command ➔ Retorna alguma coisa ➔ Não muda nada Se

    preocupam com retorno Usar doubles ➔ Não retorna nada ➔ Muda alguma coisa Se preocupam com mensagens passadas Usar spies query VS
  10. Descrição ruim “Any fool can write code that a computer

    can understand. Good programmers write code that humans can understand.” @martinfowler
  11. Setup/Arrange extenso + Muitas dependências pra resolver: uso de DESIGN

    PATTERNS e conceitos de ORIENTAÇÃO A OBJETOS
  12. fases do teste usado 1x + de onde veio? o

    quê é esperado? usado 1x + nome bosta
  13. melhor ter testes ruins do que não ter nenhum. MELHOR

    NÃO TER TESTES DO QUE TER TESTES RUINS.
  14. Links Interessantes How To Stop Hating Your Test Suite -

    @searls na RubyConf2015 http://blog.testdouble.com/posts/2015-11-16-how-to-stop-hating-your-tests Just Say No To More End-To-End Tests https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html Test Pyramid - @martinfowler https://martinfowler.com/bliki/TestPyramid.html Test Smells - XUnitPatterns http://xunitpatterns.com/TestSmells.html Test Smells - @testdouble https://github.com/testdouble/test-smells 8 Erros Comuns Ao Escrever Testes De Unidade - http://www.codeatest.com/8-erros-comuns-testes-de-unidade/