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

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

https://github.com/github/awesome-copilot/blob/main/skills/csharp-xunit/SKILL.md

Mensagem pronta para colar

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

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/csharp-xunit/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 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, CalculatorTests para Calculator)
  • Use comandos de teste do SDK do .NET: dotnet test para 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.Equal para igualdade de valor
  • Use Assert.Same para igualdade de referência
  • Use Assert.True/Assert.False para condições booleanas
  • Use Assert.Contains/Assert.DoesNotContain para coleções
  • Use Assert.Matches/Assert.DoesNotMatch para correspondência de padrões regex
  • Use Assert.Throws<T> ou await 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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas