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.

No packages depend on FluentAssertions.

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.

This package has no dependencies.

Version Downloads Last updated
8.8.0 47 10/26/2025
8.7.1 42 10/10/2025
8.7.0 35 10/05/2025
8.6.0 37 09/04/2025
8.5.0 42 07/15/2025
8.4.0 27 07/04/2025
8.3.0 30 06/08/2025
8.2.0 35 04/02/2025
8.1.1 51 04/06/2025
8.1.0 37 04/02/2025
8.0.1 45 02/01/2025
8.0.0 44 01/25/2025
8.0.0-rc.2 50 01/07/2025
8.0.0-rc.1 35 01/07/2025
8.0.0-alpha.68 48 01/07/2025
8.0.0-alpha.1 36 12/12/2024
7.2.0 42 04/02/2025
7.1.0 58 01/25/2025
7.0.0 40 12/19/2024
7.0.0-alpha.6 55 12/12/2024
7.0.0-alpha.5 46 11/14/2024
7.0.0-alpha.4 51 11/14/2024
7.0.0-alpha.3 50 06/01/2024
7.0.0-alpha.2 43 06/01/2024
7.0.0-alpha.1 45 06/01/2024
6.12.2 44 11/14/2024
6.12.1 61 11/14/2024
6.12.0 54 11/14/2024
6.11.0 57 06/01/2024
6.10.0 39 11/14/2024
6.9.0 53 06/01/2024
6.8.0 52 06/01/2024
6.7.0 37 06/01/2024
6.6.0 38 06/01/2024
6.5.1 40 06/01/2024
6.5.0 39 06/01/2024
6.4.0 45 12/19/2024
6.3.0 46 06/01/2024
6.2.0 52 06/01/2024
6.1.0 38 06/01/2024
6.0.0 57 06/01/2024
6.0.0-beta0003 40 06/01/2024
6.0.0-beta0002 38 06/01/2024
6.0.0-beta0001 38 06/01/2024
6.0.0-alpha0002 53 06/01/2024
6.0.0-alpha0001 44 06/01/2024
5.10.3 55 01/13/2023
5.10.2 50 06/01/2024
5.10.0 43 06/01/2024
5.9.0 45 06/01/2024
5.8.0 60 06/01/2024
5.7.0 47 06/01/2024
5.6.0 40 06/01/2024
5.5.3 52 06/01/2024
5.5.1 44 06/01/2024
5.4.2 36 06/01/2024
5.4.1 40 06/01/2024
5.4.0 49 06/01/2024
5.3.2 35 06/01/2024
5.3.0 41 06/01/2024
5.2.0 48 06/01/2024
5.1.2 61 06/01/2024
5.1.1 59 06/01/2024
5.0.0 38 06/01/2024
4.19.4 60 06/01/2024
4.19.3 45 06/01/2024
4.19.2 64 06/01/2024
4.19.0 41 06/01/2024
4.18.0 38 06/01/2024
4.17.0 53 06/01/2024
4.16.0 45 06/01/2024
4.15.0 42 06/01/2024
4.14.0 51 06/01/2024
4.13.1 44 06/01/2024
4.13.0 40 06/01/2024
4.12.0 50 11/14/2024
4.11.0 44 12/11/2024
4.10.0 52 06/01/2024
4.9.1 51 06/01/2024
4.9.0 41 06/01/2024
4.8.0 44 06/01/2024
4.7.0 47 06/01/2024
4.6.3 47 06/01/2024
4.6.2 41 06/01/2024
4.6.1 43 06/01/2024
4.5.0 41 06/01/2024
4.4.0 54 06/01/2024
4.3.2 37 06/01/2024
4.3.1 40 06/01/2024
4.3.0 52 06/01/2024
4.2.2 50 06/01/2024
4.2.1 59 06/01/2024
4.2.0 53 11/14/2024
4.1.1 58 06/01/2024
4.1.0 47 06/01/2024
4.0.1 60 06/01/2024
4.0.0 36 11/14/2024
4.0.0-beta0001 43 06/01/2024
3.5.0 53 06/01/2024
3.4.1 64 06/01/2024
3.4.0 53 11/14/2024
3.3.0 49 06/01/2024
3.2.2 37 06/01/2024
3.2.1 39 06/01/2024
3.1.229 41 06/01/2024
3.0.107 38 06/01/2024
2.2.0 37 06/01/2024
2.1.0 36 06/01/2024
2.0.1 55 06/01/2024
2.0.0.1 34 11/14/2024
1.7.1.1 45 06/01/2024
1.7.0 58 06/01/2024
1.6.0 55 06/01/2024
1.5.0 39 06/01/2024
1.4.0 37 06/01/2024
1.3.0.1 39 06/01/2024