Swevo.AutoAssert.Json
1.0.0
Prefix Reserved
See the version list below for details.
dotnet add package Swevo.AutoAssert.Json --version 1.0.0
NuGet\Install-Package Swevo.AutoAssert.Json -Version 1.0.0
<PackageReference Include="Swevo.AutoAssert.Json" Version="1.0.0" />
<PackageVersion Include="Swevo.AutoAssert.Json" Version="1.0.0" />
<PackageReference Include="Swevo.AutoAssert.Json" />
paket add Swevo.AutoAssert.Json --version 1.0.0
#r "nuget: Swevo.AutoAssert.Json, 1.0.0"
#:package Swevo.AutoAssert.Json@1.0.0
#addin nuget:?package=Swevo.AutoAssert.Json&version=1.0.0
#tool nuget:?package=Swevo.AutoAssert.Json&version=1.0.0
AutoAssert.Json
Fluent JSON assertions for AutoAssert — assert directly on raw JSON strings, with full structural diffs.
Usage
dotnet add package Swevo.AutoAssert.Json
json.Should().BeValidJson();
json.Should()
.HaveJsonProperty("customer.name")
.And.HaveJsonProperty("items[0].id");
json.Should().HaveJsonPropertyEqualTo("customer.name", "Ada");
json.Should().BeEquivalentToJson("""{ "a": 1, "b": 2 }""");
API
| Method | Description |
|---|---|
BeValidJson() |
Asserts the subject parses as JSON. |
HaveJsonProperty(path) |
Asserts a property exists at a dotted/indexed path, e.g. "customer.address.city" or "items[0].id". |
HaveJsonPropertyEqualTo(path, value) |
Asserts the property at path equals value. |
BeEquivalentToJson(expectedJson) |
Structural comparison: objects compared property-by-property regardless of key order, arrays compared element-by-element in order, primitives by value. Reports every mismatch found (missing/extra properties, differing values) rather than stopping at the first. |
Why not just HaveJsonProperty(path, value)?
Should().HaveJsonProperty("customer.name", "Ada") would be ambiguous with the presence-only
overload's optional because parameter (HaveJsonProperty(path, because: "...")) — both accept a
plain string in the second position, and C# would silently prefer the exact-string overload,
turning your expected value into a reason clause instead of an assertion. HaveJsonPropertyEqualTo
avoids that footgun entirely.
Limitations
Failures always throw immediately as an AssertionFailedException — these assertions do not
currently participate in an ambient AssertionScope.
License
MIT © Justin Bannister
| 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 is compatible. 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 is compatible. 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 is compatible. 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. |
-
.NETStandard 2.0
- Swevo.AutoAssert (>= 2.4.0)
- System.Text.Json (>= 8.0.6)
-
net10.0
- Swevo.AutoAssert (>= 2.4.0)
-
net8.0
- Swevo.AutoAssert (>= 2.4.0)
-
net9.0
- Swevo.AutoAssert (>= 2.4.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.