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 conventionMethodName_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.Andor.Oroperators 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.,
CalculatorTestsforCalculator) - Use .NET SDK test commands:
dotnet testfor running tests - TUnit requires .NET 8.0 or higher