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

Como não escrever seus testes

Como não escrever seus testes

Esses slides olham para os testes que escrevemos (em ruby + rspec) e nos ajudam a perceber alguns dos erros que cometemos quando os escrevemos, que podem indicar tanto testes ruins como código de produção ruim .

Camila Campos

July 10, 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; 2. Executa a ação que você quer testar; 3. Verifica se aconteceu o que você esperava.
  4. UI - Testes Ponta a ponta Testam a interação de

    um usuário real com o software Ser o mais realista possível Propósito: Achar bugs SEM MOCKS/STUBS/FAKE/ETC
  5. Unit - Testes de Unidade Testam cada unidade do sistema

    isoladamente Isolam falhas Propósito: Guiar o design do código MOCK/STUB/FAKE PRA TUDO!
  6. Service - Testes de Integração Testam o comportamento de 2

    ou mais unidades Sem a maior parte das desvantagens do end-to-end Propósito: Achar bugs
  7. 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
  8. Descrição ruim “Any fool can write code that a computer

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

    PATTERNS E CONCEITOS DE ORIENTAÇÃO A OBJETOS
  10. melhor ter testes ruins do que não ter nenhum. MELHOR

    NÃO TER TESTES DO QUE TER TESTES RUINS.
  11. 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/