JoanComasFdz.AssertingThat
1.0.0
dotnet add package JoanComasFdz.AssertingThat --version 1.0.0
NuGet\Install-Package JoanComasFdz.AssertingThat -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="JoanComasFdz.AssertingThat" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="JoanComasFdz.AssertingThat" Version="1.0.0" />
<PackageReference Include="JoanComasFdz.AssertingThat" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add JoanComasFdz.AssertingThat --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: JoanComasFdz.AssertingThat, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package JoanComasFdz.AssertingThat@1.0.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=JoanComasFdz.AssertingThat&version=1.0.0
#tool nuget:?package=JoanComasFdz.AssertingThat&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
JoanComasFdz.AssertingThat
A tiny, extensible assertion library that provides visual distinction in test code through a static entry point and domain-specific extension methods.
Why?
Traditional assertion libraries use static methods (Assert.True(), Assert.Equal()) which aren't extensible, or use extension methods directly on instances (order.Should()) which lack visual distinction in IDEs - everything appears in the same gray color.
AssertingThat solves both problems:
- ✨ Visual Distinction: The static
Assertingclass is colored differently by IDEs, making assertions instantly recognizable - 🔧 Extensibility: Write custom assertion extension methods for your domain models
- 📖 Readability: Express business rules in test language
- 🎯 Discoverability: IntelliSense shows type-specific assertions
Quick Start
Installation
dotnet add package JoanComasFdz.AssertingThat
Basic Usage
using JoanComasFdz.AssertingThat;
// In your test project, create extension methods:
public static class OrderExtensions
{
public static AssertingThat<Order> HasBeenShipped(this AssertingThat<Order> assertingThat)
{
Assert.Equal(OrderStatus.Shipped, assertingThat.InstanceToAssert.Status);
return assertingThat;
}
public static AssertingThat<Order> HasTotalAmount(this AssertingThat<Order> assertingThat, decimal expected)
{
Assert.Equal(expected, assertingThat.InstanceToAssert.TotalAmount);
return assertingThat;
}
}
// Use in your tests with clear visual distinction:
[Fact]
public void Order_Processing_Success()
{
var order = ProcessOrder();
Asserting.That(order)
.HasBeenShipped()
.HasTotalAmount(99.99m);
}
Key Benefits
- Visual Distinction -
Assertingis colored differently in your IDE, making test assertions stand out - Business Language - Write assertions that match your domain (e.g.,
HasBeenShipped()vsStatus == Shipped) - Discoverability - IntelliSense shows available assertions for each type
- Composability - Chain multiple assertions naturally
- Framework Agnostic - Works with xUnit, NUnit, MSTest, or any assertion library
Compatibility
- Target: .NET Standard 2.0
- Compatible with: .NET Framework 4.6.1+, .NET Core 2.0+, .NET 5.0+
- No dependencies - Bring your own assertion library
Learn More
License
Apache-2.0 - See LICENSE for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 334 | 11/6/2025 |