csharp-tunit

Installation
Summary

Best practices for writing unit tests with TUnit, including data-driven and advanced testing patterns.

  • Use [Test] attribute for test methods; follow Arrange-Act-Assert pattern with naming convention MethodName_Scenario_ExpectedBehavior
  • Data-driven testing via [Arguments], [MethodData], and [ClassData] attributes; multiple [Arguments] can apply to the same method
  • Fluent async assertions with await Assert.That() syntax; chain with .And or .Or operators and use .Within() for tolerance comparisons
  • Lifecycle hooks at multiple scopes: [Before/After(Test)], [Before/After(Class)], and [Before/After(Assembly)] for flexible setup and teardown
  • Advanced features include [Repeat(n)], [Retry(n)], [Timeout], [ParallelLimit<T>], and [DependsOn] for test control; parallel execution enabled by default
SKILL.md

TUnit Best Practices

Your goal is to help me write effective unit tests with TUnit, covering both standard and data-driven testing approaches.

Project Setup

  • Use a separate test project with naming convention [ProjectName].Tests
  • Reference TUnit package and TUnit.Assertions for fluent assertions
  • Create test classes that match the classes being tested (e.g., CalculatorTests for Calculator)
  • Use .NET SDK test commands: dotnet test for running tests
  • TUnit requires .NET 8.0 or higher

Test Structure

Related skills

More from github/awesome-copilot

Installs
8.4K
GitHub Stars
33.1K
First Seen
Feb 25, 2026