"With Fluent Assertions, the assertions look beautiful, natural and most importantly, extremely readable" (by Girish)
- See www.fluentassertions.com for more information about the main library.
- Join the chat at
BeEquivalentTo()
ContainSingleElement()
ContainSubtree()
HaveCount()
HaveElement()
HaveValue()
MatchRegex()
NotBeEquivalentTo()
NotHaveElement()
NotHaveValue()
NotMatchRegex()
See "in-code" description for more information.
Be sure to include using FluentAssertions.Json;
otherwise false positives may occur.
using FluentAssertions;
using FluentAssertions.Json;
using Newtonsoft.Json.Linq;
...
var actual = JToken.Parse(@"{ ""key1"" : ""value"" }");
var expected = JToken.Parse(@"{ ""key2"" : ""value"" }");
actual.Should().BeEquivalentTo(expected);
You can also use IJsonAssertionOptions<>
with Should().BeEquivalentTo()
assertions, which contains helper methods that you can use to specify the way you want to compare specific data types.
Example:
using FluentAssertions;
using FluentAssertions.Json;
using Newtonsoft.Json.Linq;
...
var actual = JToken.Parse(@"{ ""value"" : 1.5 }");
var expected = JToken.Parse(@"{ ""value"" : 1.4 }");
actual.Should().BeEquivalentTo(expected, options => options
.Using<double>(d => d.Subject.Should().BeApproximately(d.Expectation, 0.1))
.WhenTypeIs<double>());