Pular para o conteúdo
Skillpedia
Testes40 mil · #5374

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

https://github.com/github/awesome-copilot/blob/main/skills/spring-boot-testing/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/spring-boot-testing/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-testing

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/spring-boot-testing/SKILL.md -o SKILL.md
Conteú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

  1. Pirâmide de Testes: Unitário (rápido) > Camada (focado) > Integração (completo)
  2. Ferramenta Certa: Use a menor camada que lhe dê confiança
  3. Estilo AssertJ: Asserções fluídas e legíveis em vez de "matchers" verbosos
  4. 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

Referência de Ferramentas de Teste

Bibliotecas de Asserção

Testcontainers

Geração de Dados de Teste

Performance e Migração

Á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:

  1. 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.
  2. Recomende refatoração - Sugira dividir o código em funções menores e focadas.
  3. Decisão do usuário - Se o usuário concordar em refatorar, ajude a identificar os pontos de extração.
  4. 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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas