Skip to content

Desafio DSMovie para implementar testes e avaliar cobertura com Jacoco. Curso Springboot Expert da DevSuperior.

Notifications You must be signed in to change notification settings

Sammy192/DSMovie_springExpert

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image Java Spring

Desafio DSMovie Jacoco

Você deve implementar todos os testes unitários de service para o projeto DSMovie.

Sobre o projeto DSMovie:

Este é um projeto de filmes e avaliações de filmes. A visualização dos dados dos filmes é pública (não necessita login), porém as alterações de filmes (inserir, atualizar, deletar) são permitidas apenas para usuários ADMIN. As avaliações de filmes podem ser registradas por qualquer usuário logado CLIENT ou ADMIN. A entidade Score armazena uma nota de 0 a 5 (score) que cada usuário deu a cada filme. Sempre que um usuário registra uma nota, o sistema calcula a média das notas de todos usuários, e armazena essa nota média (score) na entidade Movie, juntamente com a contagem de votos (count). Veja vídeo explicativo.

Arquivos de collection e enviroment do Postman estão no projeto.

image

Abaixo estão os testes unitários que você deverá implementar. Com todos os testes, o Jacoco deve reportar 100% de cobertura, mas o mínimo para aprovação no desafio são 12 dos 15 testes.

MovieServiceTests:

● findAllShouldReturnPagedMovieDTO

● findByIdShouldReturnMovieDTOWhenIdExists

● findByIdShouldThrowResourceNotFoundExceptionWhenIdDoesNotExist

● insertShouldReturnMovieDTO

● updateShouldReturnMovieDTOWhenIdExists

● updateShouldThrowResourceNotFoundExceptionWhenIdDoesNotExist

● deleteShouldDoNothingWhenIdExists

● deleteShouldThrowResourceNotFoundExceptionWhenIdDoesNotExist

● deleteShouldThrowDatabaseExceptionWhenDependentId

ScoreServiceTests:

● saveScoreShouldReturnMovieDTO

● saveScoreShouldThrowResourceNotFoundExceptionWhenNonExistingMovieId

UserServiceTests:

● authenticatedShouldReturnUserEntityWhenUserExists

● authenticatedShouldThrowUsernameNotFoundExceptionWhenUserDoesNotExists

● loadUserByUsernameShouldReturnUserDetailsWhenUserExists

● loadUserByUsernameShouldThrowUsernameNotFoundExceptionWhenUserDoesNotExists

Implementado testes no projeto e utilizando o Jacoco para cobertura de testes: ● JaCoCo é uma ferramenta de código aberto (open-source) usada para mensurar a cobertura de código em aplicações;

● A partir de relatórios visuais é possível identificar as partes do código que estão cobertas e que ainda faltam cobertura;

● O JaCoCo implementa 3 métricas principais para cobertura, sendo:

○ Line Coverage/Statement;

○ Branch Coverage;

Cyclomatic complexity: A partir de uma combinação linear apresenta o números de caminhos que necessitam cobertura.

● O JaCoCo apresenta auxilia o usuário na visualização e análise da cobertura usando diamantes coloridos, conforme a imagem anexada:

  • Diamante vermelho: Indica que nenhum teste está cobrindo o branch;

  • Diamante amarelo: Indica que o código está parcialmente coberto;

  • Diamante verde: Indica que todo o branch foi testado e coberto;

image image

About

Desafio DSMovie para implementar testes e avaliar cobertura com Jacoco. Curso Springboot Expert da DevSuperior.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages