"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>());