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

Como não escrever seus testes

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

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 .

Avatar for Camila Campos

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/