spring-boot-testing
Ajuda seu agente a testar aplicações Spring Boot usando as melhores técnicas com JUnit 6 e AssertJ. Garante que o código esteja bem testado e confiável.
O que ela faz
Esta ferramenta ajuda você a testar seu código Spring Boot, escolhendo as melhores formas de testar dependendo do que você quer verificar. Ela usa ferramentas modernas para tornar os testes mais fáceis e claros.
Quando usar
- ✓Quando você quer testar se um 'endpoint' (uma porta de comunicação) do seu site funciona.
- ✓Quando você quer verificar se a parte que salva e lê dados do seu programa está correta.
- ✓Quando você precisa testar como seu programa se comunica com outros serviços pela internet.
Exemplo do que pedir para a IA
“Como eu testo se meu código que salva dados no banco funciona corretamente?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta analisa o que você quer testar e sugere a melhor abordagem, como usar `@WebMvcTest` para testar a parte visual ou `@DataJpaTest` para testar a parte de dados. Ela também recomenda o uso de bibliotecas como AssertJ para escrever testes mais legíveis.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill spring-boot-testingOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/spring-boot-testing/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Testes com Spring Boot
Esta habilidade oferece um guia especializado para testar aplicações Spring Boot 4 com padrões modernos e melhores práticas.
Princípios Fundamentais
- Pirâmide de Testes: Unitário (rápido) > Camada (focado) > Integração (completo)
- Ferramenta Certa: Use a menor camada que lhe dê confiança
- Estilo AssertJ: Asserções fluídas e legíveis em vez de "matchers" verbosos
- APIs Modernas: Prefira MockMvcTester e RestTestClient em vez de alternativas legadas
Qual Camada de Teste?
| Cenário | Anotação | Referência |
|---|---|---|
| Controller + Semântica HTTP | @WebMvcTest |
references/webmvctest.md |
| Repository + Consultas JPA | @DataJpaTest |
references/datajpatest.md |
| Cliente REST + APIs externas | @RestClientTest |
references/restclienttest.md |
| Serialização/Desserialização JSON | @JsonTest |
references/test-slices-overview.md |
| Aplicação Completa | @SpringBootTest |
references/test-slices-overview.md |
Referência de Camadas de Teste
- references/test-slices-overview.md - Matriz de decisão e comparação
- references/webmvctest.md - Camada Web com MockMvc
- references/datajpatest.md - Camada de Dados com Testcontainers
- references/restclienttest.md - Teste de cliente REST
Referência de Ferramentas de Teste
- references/mockmvc-tester.md - MockMvc no estilo AssertJ (3.2+)
- references/mockmvc-classic.md - MockMvc tradicional (pré-3.2)
- references/resttestclient.md - Cliente REST Spring Boot 4+
- references/mockitobean.md - Mocking de dependências
Bibliotecas de Asserção
- references/assertj-basics.md - Escalares, strings, booleanos, datas
- references/assertj-collections.md - Listas, Sets, Mapas, arrays
Testcontainers
- references/testcontainers-jdbc.md - PostgreSQL, MySQL, etc.
Geração de Dados de Teste
- references/instancio.md - Gera objetos de teste complexos (3+ propriedades)
Performance e Migração
- references/context-caching.md - Acelera suítes de testes
- references/sb4-migration.md - Mudanças do Spring Boot 4.0
Árvore de Decisão Rápida
Testing a controller endpoint?
Yes → @WebMvcTest with MockMvcTester
Testing repository queries?
Yes → @DataJpaTest with Testcontainers (real DB)
Testing business logic in service?
Yes → Plain JUnit + Mockito (no Spring context)
Testing external API client?
Yes → @RestClientTest with MockRestServiceServer
Testing JSON mapping?
Yes → @JsonTest
Need full integration test?
Yes → @SpringBootTest with minimal context config
Destaques do Spring Boot 4
- RestTestClient: Alternativa moderna ao TestRestTemplate
- @MockitoBean: Substitui @MockBean (depreciado)
- MockMvcTester: Asserções no estilo AssertJ para testes web
- Starters Modulares: Starters de teste específicos de tecnologia
- Pausamento de Contexto: Pausamento automático de contextos em cache (Spring Framework 7)
Melhores Práticas de Teste
Avaliação de Complexidade de Código
Quando um método ou classe é muito complexo para ser testado efetivamente:
- Analise a complexidade - Se você precisar de mais de 5-7 casos de teste para cobrir um único método, ele provavelmente está muito complexo.
- Recomende refatoração - Sugira dividir o código em funções menores e focadas.
- Decisão do usuário - Se o usuário concordar em refatorar, ajude a identificar os pontos de extração.
- Prossiga se necessário - Se o usuário decidir continuar com o código complexo, implemente os testes apesar da dificuldade.
Exemplo de recomendação de refatoração:
// Before: Complex method hard to test
public Order processOrder(OrderRequest request) {
// Validation, discount calculation, payment, inventory, notification...
// 50+ lines of mixed concerns
}
// After: Refactored into testable units
public Order processOrder(OrderRequest request) {
validateOrder(request);
var order = createOrder(request);
applyDiscount(order);
processPayment(order);
updateInventory(order);
sendNotification(order);
return order;
}
Evite Redundância de Código
…
Perguntas frequentes
O que é a 'Pirâmide de Testes'?
É uma forma de organizar seus testes: muitos testes pequenos e rápidos (unidade), alguns testes médios (fatia) e poucos testes grandes e mais lentos (integração).
Por que usar AssertJ?
AssertJ torna seus testes mais fáceis de ler e escrever, usando uma linguagem mais natural para verificar se os resultados estão corretos.
O que são 'Test Slices'?
São testes focados em partes específicas do seu aplicativo, como apenas a parte de rede ou apenas a parte de dados, tornando os testes mais rápidos e direcionados.
Detalhes
Descrição original do autor
Expert Spring Boot 4 testing specialist that selects the best Spring Boot testing techniques for your situation with Junit 6 and AssertJ.
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5374
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
cpp-testing
Faz seu agente escrever e melhorar testes para código C++. Ajuda a configurar ferramentas de teste e a corrigir erros.
affaan-m/ECC
csharp-testing
Ajuda seu agente a criar testes para código C# e .NET. Ele usa as melhores práticas para garantir que os testes sejam eficientes e confiáveis.
affaan-m/ECC
django-tdd
Faz seu agente aplicar estratégias de teste para Django com pytest-django e TDD. É útil para escrever testes robustos e garantir a qualidade do código, especialmente para APIs DRF.
affaan-m/ECC