FluentAssertions 2.1.0

A very extensive set of extension methods that allow you to more naturally specify the expected outcome of a TDD or
     BDD-style unit test. Runs on .NET 3.5, 4.0 and 4.5 (Desktop and Windows Store), Silverlight 4 and 5 and Windows Phone 7.5 and 8. Supports the unit test frameworks NUnit, XUnit, MBUnit, Gallio and MSpec.

There is a newer version of this package available.
See the version list below for details.
Install-Package FluentAssertions -Version 2.1.0
dotnet add package FluentAssertions --version 2.1.0
<PackageReference Include="FluentAssertions" Version="2.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FluentAssertions --version 2.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

What are the major features
     * Added support for Windows Phone 8 test projects, both using the Visual Studio 2010 test harnass, as well as the new MSTest based framework introduced in Visual Studio 2012 Update 2 (#12470)
     * Added support for AggregateExceptions in .NET 4.0 or newer so that aggregated exceptions are treated the same way as normal exceptions. This also allows you to use Should(Not)Throw() to assert a specific exception has occurred (or not), even if it is wrapped in an AggregateException (#12482).
     * ShouldBeEquivalent() will attempt to report all differences rather than just the first one. It also supports nested dictionaries (#12472).
     * By default the order of items in (nested) collections is ignored while asserting the equivalency of two object graphs. You can override this using the WithStrictOrder()/WithStrictOrderFor() options, with or without a specific path or predicate. Notice that for performance reasons, collections of bytes are still compared in exact order (#12484).

     What other improvements are new
     * Added support for asserting a method is decorated with a certain attribute (by Nathan Roe)
     * Added BeWritable() to the property info assertions .
     * XName support for all XML-related assertiosn (#12453 by Igor Khavkin)
     * Added Should().BeApproximately() for decimal values.
     * Added support for ShouldNotThrow() on Func<Task> so that you can verify that asynchronous functions threw a task (by Igor Khavkin)
     * Ensured that all reference type assertions inherit from ReferenceTypeAssertions so that they all share some basic methods like (Not)BeNull.
     * Added support for string.Should().NotStartWith() and string.Should().NotEndWith(). Also added the case-insensitive versions of them. (#12441)
     * Allowed adding, removing and/or reordering the steps the EquivalencyValidator executes while comparing two object graphs for structural equality.
     * By default, the exception message assertions are based on wildcards and case-insensitive. The ComparisonMode enum has been marked obsolete.

     Bug fixes
     * Added catching of FileLoadExceptions so AttributeBasedFormatter will not crash on certain circumstances.
     * Made test framework detection based on assembly scanning case insensitive (#12483)
     * Fixed a type-mismatch error when two nullable properties were compared using an AssertionRule.
     * The method collection.ShouldBeEquivalent() ignored duplicates in the expectation.
     * Applied a small improvement by Groostav to collection.HaveCount() because it was counting collections through LINQ Count() even though it has a normal Count property (#12469).
     * Comparing a null collection with another null collection will now succeed (#12490)
     * When a type was generic, FA wouldn't display its properties in assertion failures (#12492)
     * On Mono, the AttributeBasedFormatter sometimes throws a NullReferenceException, but this has been fixed by Frank Ebersoll (#12487).
     * During a structural equality check, FA would incorrectly decide to include protected properties in the comparison. This has been fixed now (#12486).
     * FA chocked on properties overriden using the new keyword. Now it just tries to be smart about it and select the one which type matches the subject (#12481).
     * When a floating point value representing NaN was compared with another approximate value, it didn't throw (#12479).
     * Improved the details of any unexpected exceptions during the ShouldThrow() and ShouldNotThrow() methods (#12473).
     * Collection.ShouldBeInAscendingOrder() wasn't reporting the correct index if an item appeared out-of-order (#12468).

     Breaking changes
     * Renamed the Execute.Verification property to Execute.Assertion and introduced an internal AssertionScope.

Dependencies

This package has no dependencies.

NuGet packages (237)

Showing the top 5 NuGet packages that depend on FluentAssertions:

Package Downloads
FluentAssertions.Json
Fluent Assertions extensions for Newtonsoft.Json
FluentAssertions.Mvc5
Fluent Assertions extensions for ASP.NET MVC 5.
FluentValidation.Validators.UnitTestExtension
A unit test library for .NET that allows you to build tests for FluentValidation rules in easy way.
FluentAssertions.Autofac
Fluent Assertions extensions for Autofac
LCore
C# Extensions Method Library

GitHub repositories (321)

Showing the top 5 popular GitHub repositories that depend on FluentAssertions:

Repository Stars
App-vNext/Polly
Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner. From version 6.0.1, Polly targets .NET Standard 1.1 and 2.0+.
restsharp/RestSharp
Simple REST and HTTP API Client for .NET
felixse/FluentTerminal
A Terminal Emulator based on UWP and web technologies.
dotnet/machinelearning
ML.NET is an open source and cross-platform machine learning framework for .NET.
IdentityServer/IdentityServer4
OpenID Connect and OAuth 2.0 Framework for ASP.NET Core

Version History

Version Downloads Last updated
6.0.0-alpha0001 13,583 7/24/2020
5.10.3 5,577,446 3/21/2020
5.10.2 2,281,746 2/9/2020
5.10.0 2,162,251 1/2/2020
5.9.0 5,957,576 8/28/2019
5.8.0 984,224 8/9/2019
5.7.0 3,428,465 6/8/2019
5.6.0 7,380,785 1/11/2019
5.5.3 2,123,830 11/20/2018
5.5.1 168,498 11/16/2018
5.4.2 2,279,676 9/14/2018
5.4.1 3,265,024 6/20/2018
5.4.0 374,942 6/13/2018
5.3.2 576,558 5/30/2018
5.3.0 1,574,371 4/19/2018
5.2.0 1,144,425 3/15/2018
5.1.2 811,253 2/19/2018
5.1.1 154,550 2/14/2018
5.0.0 755,902 2/4/2018
4.19.4 4,962,135 8/24/2017
4.19.3 1,085,318 7/4/2017
4.19.2 2,618,834 3/8/2017
4.19.0 967,704 2/4/2017
4.18.0 1,439,084 12/4/2016
4.17.0 556,996 11/9/2016
4.16.0 260,132 10/26/2016
4.15.0 190,314 10/11/2016
4.14.0 684,488 9/5/2016
4.13.1 80,529 9/1/2016
4.13.0 321,132 8/2/2016
4.12.0 362,668 7/15/2016
4.11.0 193,186 7/6/2016
4.10.0 19,355 7/5/2016
4.9.1 204,493 6/23/2016
4.9.0 122,218 6/13/2016
4.8.0 54,311 6/7/2016
4.7.0 43,710 6/6/2016
4.6.3 234,880 5/24/2016
4.6.2 42,477 5/22/2016
4.6.1 100,157 5/13/2016
4.5.0 214,433 4/25/2016
4.4.0 134,492 4/17/2016
4.3.2 70,176 4/3/2016
4.3.1 4,110 4/1/2016
4.3.0 60,354 3/31/2016
4.2.2 456,441 2/5/2016
4.2.1 245,906 1/10/2016
4.2.0 179,926 1/8/2016
4.1.1 142,853 12/13/2015
4.1.0 265,865 11/24/2015
4.0.1 276,058 10/21/2015
4.0.0 386,765 8/24/2015
4.0.0-beta0001 2,420 8/7/2015
3.5.0 239,600 8/2/2015
3.4.1 221,042 7/3/2015
3.4.0 77,464 6/22/2015
3.3.0 619,683 2/18/2015
3.2.2 215,599 12/12/2014
3.2.1 283,516 9/11/2014
3.1.229 164,066 7/29/2014
3.0.107 231,453 4/30/2014
2.2.0 467,707 12/30/2013
2.1.0 210,141 8/23/2013
2.0.1 229,780 3/3/2013
2.0.0.1 102,271 10/15/2012
1.7.1.1 71,600 3/24/2012
1.7.0 8,967 1/13/2012
1.6.0 10,508 10/31/2011
1.5.0 7,538 6/29/2011
1.4.0 4,774 3/14/2011
1.3.0.1 12,383 1/15/2011
Show less