Este código foi gerado ao longo do hands-on que foi realizado ao vivo no evento Virada da Qualidade. O vídeo original está disponível no link https://www.youtube.com/watch?v=pdEJNU8rUto&t=21391s no ponto de 05h56min.
- Java 11 SDK
- Maven >= 3.8.3
- Git >= 2.33.0
- IntelliJ IDEA Community >= 2021.2
- Software-alvo dos testes é parte de um sistema de conta-corrente bancária que contém as classes abaixo disponível nas pasta src > java > principal:
- Cliente: cliente que tem um nome
- Conta: Cada cliente pode ter uma ou mais contas, que terão agência, número de conta e saldo inicial
- Lancamento: Cada conta poderá ter zero ou mais lançamentos compostos por tipo de lançamento (D para Débito ou C para Crédito), data, valor e histórico.
- Testes que contemplam as 3 classes listadas acima. Os testes estão disponíveis na pasta "src" > "test" > "java" > "tests"
- Arquivo de massa de dados "nomes.csv" disponível em "src" > "test" > "java" > "resources" para execução de teste parametrizado
- Anotações:
- @Test: marca o método como teste do JUnit
- @BeforeAll: marca o método para ser executado uma única vez antes do ínicio da execução dos testes da classe de teste
- @BeforeEach: marca o método para ser executado antes da execução de cada teste da classe de teste
- @AfterAll: marca o método para ser executado uma única vez depois do fim da execução dos testes da classe de teste
- @AfterEach: marca o método para ser executado depois da execução de cada teste da classe de teste
- @DisplayName: define um nome amigável para o teste
- @ParameterizedTest: define que o método é um teste com parâmetros, no caso deste código utiliza como parâmetro a massa de dados do arquivo CSV
- Asserções do JUnit e do AssertJ que validam os resultados do teste.
-
Clone este projeto em uma pasta em sua máquina local com o comando abaixo no CMD (Prompt de comando):
git clone https://github.com/marcelodebittencourt/handsOn_JUnit5_ViradaDaQualidade.git
-
Será criada a subpasta "handsOn_JUnit5_ViradaDaQualidade" a partir de sua pasta onde você rodou este comando. O projeto estará salvo nesta subpasta.
-
Abra a IDE IntelliJ IDEA
-
Se algum projeto abrir automaticamente, vá em "File" > "Close Project"
-
Na tela principal do IntelliJ IDEA, clique no botão "Open"
-
Navegue até a subpasta que contém o projeto que foi clonado
-
Clique no botão "OK"
-
O projeto será importado e aberto com sucesso no IntelliJ IDEA
-
Atualize as dependências localmente clicando com o botão direito no nome do projeto logo acima da lista de pastas e arquivos do projeto
-
No menu que aparece, selecione a opção "Maven" > "Reload Project". Role o menu para baixo caso necessário até aparecer a opção "Maven"
-
Aguarde por cerca de 1 minuto até que as dependências sejam baixadas localmente.
- Expanda o projeto, clicando no ícone ">" logo ao lado esquerdo projeto nome do projeto na guia Project
- Expanda até que se possível visualizar a estrutura "src" > "test" > "java"
- Para rodar todos os testes, clique com o botão direito no pacote "tests"
- No menu de contexto que aparece, selecione a opção "Run 'Tests' in 'tests'"
- Os resultados aparecerão na parte inferior da IDE
- Se quiser rodar os testes para cada classe, basta repetir os passos 3 a 5, mas clicando em cada classe de teste dentro do pacote tests.
-
Abra o CMD (Prompt de comando)
-
Acesse a pasta onde encontra-se o projeto:
cd\{LOCAL_DA_PASTA}
-
Rode o comando:
mvn clean test
-
Abra o CMD (Prompt de comando)
-
Acesse a pasta onde encontra-se o projeto:
cd\{LOCAL_DA_PASTA}
-
Rode o comando:
mvn surefire-report:report
-
Volte para o IntelliJ IDEA
-
Expanda o projeto até que apareça a pasta "target" > "site"
-
Clique com o botão direito no arquivo "surefire-report.html"
-
No menu de contexto que aparece selecione "Open In" > "Browser" > "Chrome".
https://marcelodebittencourt.com
- GitHub Action: quando um push é realizado neste repositório do GitHub, os testes são automaticamente executados.
- Jenkins: previamente configure na instância do Jenkins o apontamento para o Java JDK 11 e para o Maven coloque o nome de "M3".