Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

04 Kamila Santos Dev Backend

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

AGENDA

Slide 5

Slide 5 text

PIRAMIDE DE TESTES SUITE DE TESTES TESTES UNITARIOS JUNIT ASSERTS ANNOTATIONS EXEMPLO MELHORES PRÁTICAS TDD

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

coleção de casos de teste ou specs destinados a testar um programa para verificar um determinado comportamento SUITE DE TESTES

Slide 8

Slide 8 text

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.

Slide 9

Slide 9 text

Caso de Teste mostra os caminhos percorridos por um módulo, Caso de Uso ou funcionalidade dentro do projeto. CASO DE TESTE

Slide 10

Slide 10 text

testam cada funcionalidade do código separadamente, cada unidade dele TESTE UNITÁRIO

Slide 11

Slide 11 text

JUNIT

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

expõe a interface TestEngine, que define o contrato de execução de qualquer ferramenta de testes sobre a plataforma do JUnit JUNIT PLATFORM

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Fornece um TestEngine para execução de testes escritos em JUnit 3 e 4 JUNIT VINTAGE

Slide 17

Slide 17 text

é 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

Slide 18

Slide 18 text

Há vários tipos de asserts como boolean, null... ASSERTS

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

é 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

Slide 21

Slide 21 text

@Test @Before @BeforeClass @After @AfterClass ANNOTATIONS

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

MELHORES PRÁTICAS

Slide 24

Slide 24 text

MELHORES PRÁTICAS

Slide 25

Slide 25 text

EVITE ESCREVER CASOS DE TESTE QUE POSSAM CAUSAR IMPACTO

Slide 26

Slide 26 text

EVITE ESCREVER CASOS DE TESTE QUE POSSAM CAUSAR IMPACTO

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

NÃO PASSE NO TESTE APENAS PARA PASSAR NELE!

Slide 30

Slide 30 text

NÃO ESCREVA SEUS PRÓPRIOS BLOCOS CATCH QUE EXISTEM APENAS PARA PASSAR EM UM TESTE

Slide 31

Slide 31 text

COVERAGE E RELATÓRIO DE TESTES

Slide 32

Slide 32 text

MOCK SEUS DADOS

Slide 33

Slide 33 text

TESTE APENAS UMA UNIDADE DE CÓDIGO POR VEZ

Slide 34

Slide 34 text

TORNE CADA TESTE INDEPENDENTE DE TODOS OS OUTROS

Slide 35

Slide 35 text

NOMEIE SEUS TESTES DE FORMA LIMPA E CONSISTENTE

Slide 36

Slide 36 text

TODOS OS MÉTODOS, INDEPENDENTEMENTE DA VISIBILIDADE, DEVEM TER TESTES DE UNIDADE APROPRIADOS

Slide 37

Slide 37 text

NÃO PULE CASO DE TESTES

Slide 38

Slide 38 text

red green refactor tdd

Slide 39

Slide 39 text

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/

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

OBRIGADA!