Este é um projeto de um clone simples do Instagram utilizando Docker, MariaDB, Spring Boot para o backend e NextJS com Tailwind CSS para o frontend. O objetivo deste projeto é permitir que vocês desenvolvam testes unitários para as funcionalidades implementadas.
Antes de começar, verifique se você tem as seguintes ferramentas instaladas em sua máquina:
Primeiramente, acesse https://github.com/ppereiradev/instagram-clone
e faça um fork do projeto para o seu Github.
Depois, clone o repositório para a sua máquina local:
git clone https://github.com/seu-github-username/instagram-clone.git
cd instagram-clone
Execute o seguinte comando para iniciar os containers do Docker com o backend (Spring Boot), frontend (NextJS) e o banco de dados (MariaDB):
docker compose up -d
Para rodar o backend (Spring Boot) dentro do container Docker, siga os passos abaixo:
docker container exec -it instagram-clone-backend bash
mvn clean spring-boot:run
Agora, o backend estará em execução.
Para rodar o frontend (NextJS) dentro do container Docker, siga os passos abaixo:
docker container exec -it instagram-clone-frontend bash
npm run dev
Agora, você pode acessar a aplicação frontend no navegador, indo para http://localhost:3000
.
Para executar os testes unitários no backend, execute o comando Maven abaixo dentro do container do backend:
mvn clean test
Os testes unitários devem ser executados corretamente, garantindo que as funcionalidades do backend estão funcionando conforme esperado.
LEMBRE-SE DE SALVAR TODO O SEU PROGRESSO NO SEU GITHUB.
Este é o ambiente completo para o desenvolvimento do clone simples do Instagram. O próximo passo é realizar a implementação dos testes unitários, com base nas funcionalidades presentes no backend, e garantir que o código esteja funcionando de acordo com as expectativas.
Você recebeu um projeto inicial de um clone simples do Instagram, contendo as funcionalidades básicas de Sign In e Sign Up implementadas na interface gráfica, gerenciadas pelo AuthController
. O projeto também inclui endpoints para operações CRUD no UserController
.
Seu desafio é implementar testes unitários e de integração neste projeto, garantindo a qualidade e a confiabilidade do código.
Testes Unitários
UserServiceImpl
: Use JUnit e Mockito para mockar dependências e validar o comportamento esperado.JwtUtils
: Teste as funcionalidades de manipulação de tokens JWT, como geração e validação de tokens.Testes de Integração com o Banco de Dados
UserRepository
e o banco de dados usando JUnit e DataJpaTest.Testes de Integração de Controladores
AuthController
e UserController
) e o restante do sistema.Cobertura de Código
Organização e Clareza dos Testes
Uso das Ferramentas de Teste
Bom trabalho e boa sorte no desafio!