csharp-xunit
Ajuda seu agente a escrever testes unitários eficientes em C# usando XUnit. Ele ensina as melhores práticas, incluindo como criar testes que usam dados variados.
O que ela faz
Esta ferramenta ajuda você a escrever testes de código eficientes usando XUnit, uma biblioteca popular para testar programas em C#. Ela ensina as melhores práticas para testes simples e testes com dados variados.
Quando usar
- ✓Quando você quer garantir que seu código C# funciona como esperado.
- ✓Ao criar testes que precisam de vários conjuntos de dados para serem executados.
- ✓Para aprender a organizar e escrever testes de forma clara e reutilizável.
Exemplo do que pedir para a IA
“Como posso escrever um teste para a função 'Somar' que verifica se 2 + 2 = 4 usando XUnit?”
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 fornece exemplos e regras para configurar seu projeto de teste, estruturar seus testes (separando preparação, ação e verificação) e usar diferentes tipos de testes, como os que recebem dados variados.
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 csharp-xunitOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/csharp-xunit/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.
Melhores Práticas do XUnit
Seu objetivo é me ajudar a escrever testes unitários eficazes com XUnit, cobrindo abordagens de teste padrão e baseadas em dados.
Configuração do Projeto
- Use um projeto de teste separado com a convenção de nomenclatura
[ProjectName].Tests - Referencie os pacotes Microsoft.NET.Test.Sdk, xunit e xunit.runner.visualstudio
- Crie classes de teste que correspondam às classes que estão sendo testadas (por exemplo,
CalculatorTestsparaCalculator) - Use comandos de teste do SDK do .NET:
dotnet testpara executar testes
Estrutura de Teste
- Nenhum atributo de classe de teste é necessário (ao contrário de MSTest/NUnit)
- Use testes baseados em fatos com o atributo
[Fact]para testes simples - Siga o padrão Arrange-Act-Assert (AAA)
- Nomeie testes usando o padrão
MethodName_Scenario_ExpectedBehavior - Use o construtor para configuração e
IDisposable.Dispose()para desmontagem - Use
IClassFixture<T>para contexto compartilhado entre testes em uma classe - Use
ICollectionFixture<T>para contexto compartilhado entre várias classes de teste
Testes Padrão
- Mantenha os testes focados em um único comportamento
- Evite testar vários comportamentos em um único método de teste
- Use asserções claras que expressem a intenção
- Inclua apenas as asserções necessárias para verificar o caso de teste
- Torne os testes independentes e idempotentes (podem ser executados em qualquer ordem)
- Evite interdependências de teste
Testes Baseados em Dados
- Use
[Theory]combinado com atributos de fonte de dados - Use
[InlineData]para dados de teste inline - Use
[MemberData]para dados de teste baseados em métodos - Use
[ClassData]para dados de teste baseados em classes - Crie atributos de dados personalizados implementando
DataAttribute - Use nomes de parâmetros significativos em testes baseados em dados
Asserções
- Use
Assert.Equalpara igualdade de valor - Use
Assert.Samepara igualdade de referência - Use
Assert.True/Assert.Falsepara condições booleanas - Use
Assert.Contains/Assert.DoesNotContainpara coleções - Use
Assert.Matches/Assert.DoesNotMatchpara correspondência de padrões regex - Use
Assert.Throws<T>ouawait Assert.ThrowsAsync<T>para testar exceções - Use a biblioteca de asserções fluentes para asserções mais legíveis
Mocking e Isolamento
- Considere usar Moq ou NSubstitute junto com XUnit
- Faça mock de dependências para isolar unidades sob teste
- Use interfaces para facilitar o mocking
- Considere usar um contêiner de DI para configurações de teste complexas
Organização de Testes
- Agrupe testes por recurso ou componente
- Use
[Trait("Category", "CategoryName")]para categorização - Use "collection fixtures" para agrupar testes com dependências compartilhadas
- Considere usar "output helpers" (
ITestOutputHelper) para diagnósticos de teste - Pule testes condicionalmente com
Skip = "reason"nos atributos fact/theory
Perguntas frequentes
O que é um teste unitário?
É um pequeno teste que verifica se uma parte específica do seu código (como uma função) funciona corretamente isoladamente.
O que são testes 'data-driven'?
São testes que executam a mesma lógica várias vezes, mas com conjuntos de dados diferentes a cada vez, para cobrir mais cenários.
Preciso saber muito de C# para usar isso?
É útil ter um conhecimento básico de C# e de como seu código funciona, mas a ferramenta foi feita para guiar você nas melhores práticas de teste.
Detalhes
Descrição original do autor
Get best practices for XUnit unit testing, including data-driven tests
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5099
- 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