csharp-xunit

Solid

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

AI & Automation 34,233 stars 4188 forks Updated today MIT

Install

View on GitHub

Quality Score: 93/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# XUnit Best Practices Your goal is to help me write effective unit tests with XUnit, covering both standard and data-driven testing approaches. ## Project Setup - Use a separate test project with naming convention `[ProjectName].Tests` - Reference Microsoft.NET.Test.Sdk, xunit, and xunit.runner.visualstudio packages - Create test classes that match the classes being tested (e.g., `CalculatorTests` for `Calculator`) - Use .NET SDK test commands: `dotnet test` for running tests ## Test Structure - No test class attributes required (unlike MSTest/NUnit) - Use fact-based tests with `[Fact]` attribute for simple tests - Follow the Arrange-Act-Assert (AAA) pattern - Name tests using the pattern `MethodName_Scenario_ExpectedBehavior` - Use constructor for setup and `IDisposable.Dispose()` for teardown - Use `IClassFixture<T>` for shared context between tests in a class - Use `ICollectionFixture<T>` for shared context between multiple test classes ## Standard Tests - Keep tests focused on a single behavior - Avoid testing multiple behaviors in one test method - Use clear assertions that express intent - Include only the assertions needed to verify the test case - Make tests independent and idempotent (can run in any order) - Avoid test interdependencies ## Data-Driven Tests - Use `[Theory]` combined with data source attributes - Use `[InlineData]` for inline test data - Use `[MemberData]` for method-based test data - Use `[ClassData]` for class-based test data - Create cust...

Details

Author
github
Repository
github/awesome-copilot
Created
11 months ago
Last Updated
today
Language
Python
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category