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

[NERDGIRLZ] - Junit: melhores práticas para testes unitários nas suas aplicações Java

[NERDGIRLZ] - Junit: melhores práticas para testes unitários nas suas aplicações Java

Transcript

  1. Junit: melhores práticas para testes unitários nas suas aplicações Java

  2. 04 Kamila Santos Dev Backend

  3. None
  4. AGENDA

  5. PIRAMIDE DE TESTES SUITE DE TESTES TESTES UNITARIOS JUNIT ASSERTS

    ANNOTATIONS EXEMPLO MELHORES PRÁTICAS TDD
  6. None
  7. coleção de casos de teste ou specs destinados a testar

    um programa para verificar um determinado comportamento SUITE DE TESTES
  8. SUITE DE TESTES As suítes de teste são usualmente divididas

    de acordo com as funcionalidades do sistema ou com o tipo de teste executado.
  9. Caso de Teste mostra os caminhos percorridos por um módulo,

    Caso de Uso ou funcionalidade dentro do projeto. CASO DE TESTE
  10. testam cada funcionalidade do código separadamente, cada unidade dele TESTE

    UNITÁRIO
  11. JUNIT

  12. Plataforma para construção e execução de testes, JUNIT

  13. Descoberta e execução de testes na JVM JUNIT PLATFORM

  14. expõe a interface TestEngine, que define o contrato de execução

    de qualquer ferramenta de testes sobre a plataforma do JUnit JUNIT PLATFORM
  15. Contém os novos recursos para construção de testes usando o

    JUnit, e fornece uma implementação de TestEngine para execução dos testes escritos com o JUnit Jupiter. JUNIT JUPITER
  16. Fornece um TestEngine para execução de testes escritos em JUnit

    3 e 4 JUNIT VINTAGE
  17. é um método útil para determinar o status Aprovado ou

    Reprovado de um caso de teste. Os métodos de declaração são fornecidos pela classe org.junit.Assert que estende a classe java.lang.Object ASSERTS
  18. Há vários tipos de asserts como boolean, null... ASSERTS

  19. assertTrue(condition) assertFalse(condition) assertNull(object) assertNotNull(object) assertEquals(expected, actual) ASSERTS

  20. é uma forma especial de metadados sintáticos que pode ser

    adicionada ao código-fonte Java para melhor legibilidade e estrutura do código ANNOTATIONS
  21. @Test @Before @BeforeClass @After @AfterClass ANNOTATIONS

  22. EXEMPLO BIT.LY/NERDGIRLZ35-DEMO BIT.LY/JUNIT-WEBFLUX

  23. MELHORES PRÁTICAS

  24. MELHORES PRÁTICAS

  25. EVITE ESCREVER CASOS DE TESTE QUE POSSAM CAUSAR IMPACTO

  26. EVITE ESCREVER CASOS DE TESTE QUE POSSAM CAUSAR IMPACTO

  27. NOMES DE CASOS DE TESTES PADRÃO: testSampleServiceCre ateOrder()

  28. SEMPRE TENTE FAZER UMA AFIRMAÇÃO PARA CADA MÉTODO DE TESTE

  29. NÃO PASSE NO TESTE APENAS PARA PASSAR NELE!

  30. NÃO ESCREVA SEUS PRÓPRIOS BLOCOS CATCH QUE EXISTEM APENAS PARA

    PASSAR EM UM TESTE
  31. COVERAGE E RELATÓRIO DE TESTES

  32. MOCK SEUS DADOS

  33. TESTE APENAS UMA UNIDADE DE CÓDIGO POR VEZ

  34. TORNE CADA TESTE INDEPENDENTE DE TODOS OS OUTROS

  35. NOMEIE SEUS TESTES DE FORMA LIMPA E CONSISTENTE

  36. TODOS OS MÉTODOS, INDEPENDENTEMENTE DA VISIBILIDADE, DEVEM TER TESTES DE

    UNIDADE APROPRIADOS
  37. NÃO PULE CASO DE TESTES

  38. red green refactor tdd

  39. Referências https://elo7.dev/novidades-do-junit-5-parte-1/ https://elo7.dev/testes-codigo-mockito/ https://www.udemy.com/course/learn-unit-testing- with-spring-boot/

  40. Referências https://examples.javacodegeeks.com/core- java/junit/junit-best-practices/ https://howtodoinjava.com/best-practices/unit- testing-best-practices-junit-reference-guide/ http://www.kyleblaney.com/junit-best-practice

  41. OBRIGADA!