fsharp-testing

F# testing patterns with xUnit, FsUnit, Unquote, FsCheck property-based testing, integration tests, and test organization best practices. Use when writing F# tests with xUnit, FsUnit, Unquote, or FsCheck.

By affaan-m · 2,790 installs

npx skills add affaan-m/ecc --skill fsharp-testing

Source repository · Upstream listing

F Testing Patterns Comprehensive testing patterns for F applications using xUnit, FsUnit, Unquote, FsCheck, and modern .NET testing practices. When to Activate Writing new tests for F code Reviewing test quality and coverage Setting up test infrastructure for F projects Debugging flaky or slow tests Test Framework Stack Tool Purpose xUnit Test framework (standard .NET ecosystem choice) FsUnit.xUnit F friendly assertion syntax for xUnit Unquote Assertion library using F quotations for clear failure messages FsCheck.xUnit Property based testing integrated with xUnit NSubstitute Mocking .NET dependencies Testcontainers Real infrastructure in integration tests WebApplicationFactory ASP.NET Core integration tests Unit Tests with xUnit + FsUnit Basic Test Structure Assertions with Unquote Unquote uses F quotations so failure messages show the full expression that failed, not just "expected X got Y". Async Tests Parameterized Tests with Theory Property Based Testing with FsCheck Using FsCheck.xUnit Custom Generators Mocking Dependencies Function Stubs (Preferred) NSubstitute for .NET Interfaces ASP.NET Core Integration Tests Test Organization Common Anti Patterns Anti Pattern Fix Testing implementation details Test behavior and outcomes Mutable shared test state Fresh state per test Thread.Sleep in async tests Use Task.Delay with timeout, or polling helpers Asserting on sprintf output Assert on typed values and pattern matches Ignoring CancellationToken Always pass and verify cancellation Skipping property based tests Use FsCheck for any function with clear invariants Related Skills dotnet patterns Idiomatic .NET patterns, dependency injection, and architecture csharp testing C testing patterns (shared infrastructure like WebApplicationFactory and Testcontainers applies to F too) Running Tests