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

java-junit

Ajuda seu agente a escrever testes unitários em Java com JUnit 5. Ele garante que os testes sejam eficientes e cubram diferentes cenários de uso.

O que ela faz

Esta ferramenta ajuda você a escrever testes para seu código Java usando JUnit 5. Ela ensina as melhores práticas para testar funcionalidades comuns e também testes que usam vários dados de entrada.

Quando usar

  • ✓Quando você quer garantir que seu código Java funcione corretamente.
  • ✓Ao aprender a escrever testes automatizados para seu projeto.
  • ✓Para testar seu código com diferentes valores de entrada sem repetir o código.

Exemplo do que pedir para a IA

“Como posso escrever um teste para a função de soma que verifica se 2+2 é igual a 4?”

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/java-junit/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/java-junit/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta explica como organizar seus testes, usar anotações específicas do JUnit para configurar e executar testes, e como verificar se os resultados esperados são alcançados. Ela também mostra como usar diferentes fontes de dados para testar seu código com vários cenários.

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 java-junit

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/java-junit/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.

Melhores Práticas do JUnit 5+

Seu objetivo é me ajudar a escrever testes unitários eficazes com JUnit 5, cobrindo abordagens de testes padrão e orientados por dados.

Configuração do Projeto

  • Use uma estrutura de projeto Maven ou Gradle padrão.
  • Coloque o código fonte de teste em src/test/java.
  • Inclua dependências para junit-jupiter-api, junit-jupiter-engine e junit-jupiter-params para testes parametrizados.
  • Use comandos da ferramenta de build para executar testes: mvn test ou gradle test.

Estrutura de Teste

  • As classes de teste devem ter o sufixo Test, por exemplo, CalculatorTest para uma classe Calculator.
  • Use @Test para métodos de teste.
  • Siga o padrão Arrange-Act-Assert (AAA).
  • Nomeie os testes usando uma convenção descritiva, como methodName_should_expectedBehavior_when_scenario.
  • Use @BeforeEach e @AfterEach para configuração e limpeza por teste.
  • Use @BeforeAll e @AfterAll para configuração e limpeza por classe (devem ser métodos estáticos).
  • Use @DisplayName para fornecer um nome legível para classes e métodos de teste.

Testes Padrão

  • Mantenha os testes focados em um único comportamento.
  • Evite testar múltiplas condições em um único método de teste.
  • Torne os testes independentes e idempotentes (podem ser executados em qualquer ordem).
  • Evite interdependências de testes.

Testes Orientados por Dados (Parametrizados)

  • Use @ParameterizedTest para marcar um método como um teste parametrizado.
  • Use @ValueSource para valores literais simples (strings, inteiros, etc.).
  • Use @MethodSource para se referir a um método fábrica que fornece argumentos de teste como um Stream, Collection, etc.
  • Use @CsvSource para valores inline separados por vírgula.
  • Use @CsvFileSource para usar um arquivo CSV do classpath.
  • Use @EnumSource para usar constantes de enumeração.

Asserções

  • Use os métodos estáticos de org.junit.jupiter.api.Assertions (por exemplo, assertEquals, assertTrue, assertNotNull).
  • Para asserções mais fluentes e legíveis, considere usar uma biblioteca como AssertJ (assertThat(...).is...).
  • Use assertThrows ou assertDoesNotThrow para testar exceções.
  • Agrupe asserções relacionadas com assertAll para garantir que todas as asserções sejam verificadas antes que o teste falhe.
  • Use mensagens descritivas nas asserções para fornecer clareza em caso de falha.

Mocking e Isolamento

  • Use um framework de mocking como Mockito para criar objetos mock para dependências.
  • Use as anotações @Mock e @InjectMocks do Mockito para simplificar a criação e injeção de mocks.
  • Use interfaces para facilitar o mocking.

Organização de Testes

  • Agrupe testes por funcionalidade ou componente usando pacotes.
  • Use @Tag para categorizar testes (por exemplo, @Tag("fast"), @Tag("integration")).
  • Use @TestMethodOrder(MethodOrderer.OrderAnnotation.class) e @Order para controlar a ordem de execução dos testes quando estritamente necessário.
  • Use @Disabled para pular temporariamente um método ou classe de teste, fornecendo um motivo.
  • Use @Nested para agrupar testes em uma classe interna aninhada para melhor organização e estrutura.
Perguntas frequentes

O que é um teste de unidade?

É um teste que verifica uma pequena parte do seu código (geralmente uma função ou método) de forma isolada para garantir que ela funcione como esperado.

O que são testes 'data-driven'?

São testes que executam a mesma lógica de teste várias vezes, mas com diferentes conjuntos de dados de entrada e saída. Isso evita a repetição de código.

Preciso saber muito sobre Java para usar isso?

É útil ter um conhecimento básico de Java, mas a ferramenta foi projetada para explicar os conceitos de teste de forma clara, mesmo para iniciantes.

Detalhes

Descrição original do autor

Get best practices for JUnit 5 unit testing, including data-driven tests

repo: github/awesome-copilot

Popularidade

Estrelas no GitHub
40 mil
Posição no ranking
#5199
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas