O projeto FinanceControl é uma demonstração de como implementar testes de integração em um projeto ASP.NET 6. Todos os passos implementados neste projeto foram baseados na aula do canal Live #69: Implementando Testes de Integração em .NET com Docker.
A API principal, denominada "FinanceControl.Api", é uma Web API para o controle de finanças que expõe três controladores: BalanceController, ExpensesController e IncomesController. A aplicação utiliza o banco de dados Postgres para armazenar as informações financeiras e o Kafka para armazenar os eventos criados. Os endpoints da API são documentados e testáveis por meio do Swagger.
Para executar os testes de integração, é necessário configurar um ambiente em Docker para executar as imagens localmente. Neste projeto, utilizamos o Docker Desktop em um ambiente Windows para realizar os testes.
- FinanceControl instalado em seu sistema.
- Clone este repositório em seu computador:
git clone https://github.com/seu-usuario/FinanceControl.git
cd FinanceControl- Execute o seguinte comando para levantar as instâncias do Postgres e Kafka para realizar os testes manuais:
docker-compose up -dOs testes de integração estão implementados no projeto "FinanceControl.IntegrationTests". Utilizamos o framework xUnit e Microsoft.AspNetCore.Mvc.Testing para executar os testes de integração.
Os pacotes "Testcontainers", "Testcontainers.Kafka" e "Testcontainers.PostgreSql" são utilizados para levantar os contêineres no ambiente de teste. O objetivo desses testes é garantir que a API funcione corretamente em um ambiente real e integrado, utilizando os recursos do Kafka e do banco de dados Postgres.
Para executar os testes de integração, certifique-se de ter o ambiente Docker configurado e as instâncias do Postgres e Kafka em execução. Em seguida, abra o projeto "FinanceControl.IntegrationTests" e execute os testes utilizando um dos seguintes métodos:
- Utilize a linha de comando (CLI):
dotnet test- Utilize a interface gráfica do Visual Studio ou uma ferramenta compatível com testes xUnit.
Contribuições são bem-vindas! Se você deseja contribuir com melhorias, correções de bugs ou novos recursos, sinta-se à vontade para abrir um "Pull Request" neste repositório.
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.