FluentAssertions 2.0.1

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package FluentAssertions --version 2.0.1                
NuGet\Install-Package FluentAssertions -Version 2.0.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FluentAssertions" Version="2.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add FluentAssertions --version 2.0.1                
#r "nuget: FluentAssertions, 2.0.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install FluentAssertions as a Cake Addin
#addin nuget:?package=FluentAssertions&version=2.0.1

// Install FluentAssertions as a Cake Tool
#tool nuget:?package=FluentAssertions&version=2.0.1                

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. Supports the unit test frameworks NUnit, XUnit, MBUnit, Gallio and MSpec.

Product Compatible and additional computed target framework versions.
.NET Framework net35 is compatible.  net40 is compatible.  net403 was computed.  net45 is compatible.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Silverlight sl4 is compatible.  sl4-wp71 is compatible.  sl5 was computed. 
WinRT winrt45 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (551)

Showing the top 5 NuGet packages that depend on FluentAssertions:

Package Downloads
FluentAssertions.Json

Fluent Assertions extensions for Newtonsoft.Json

Akka.TestKit

You need a Akka.TestKit.* package! Add the one appropriate for the test framework you use instead. For example: Akka.TestKit.Xunit or Akka.TestKit.VsTest. This package only contains base functionality for writing tests for the Akka.NET framework.

FluentValidation.Validators.UnitTestExtension

A unit test library for .NET that allows you to build tests for FluentValidation rules in easy way.

FluentAssertions.Web

This is a FluentAssertions extension over the HttpResponseMessage object. It provides assertions specific to HTTP responses and outputs rich erros messages when the tests fail, so less time with debugging is spent.

WireMock.Net.FluentAssertions

FluentAssertions extensions for WireMock.Net

GitHub repositories (858)

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

Repository Stars
DevToys-app/DevToys
A Swiss Army knife for developers.
icsharpcode/ILSpy
.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
jasontaylordev/CleanArchitecture
Clean Architecture Solution Template for ASP.NET Core
ardalis/CleanArchitecture
Clean Architecture Solution Template: A starting point for Clean Architecture with ASP.NET Core
bitwarden/server
Bitwarden infrastructure/backend (API, database, Docker, etc).
Version Downloads Last updated
8.0.0-alpha.1 890 12/2/2024
7.0.0 178,378 12/1/2024
7.0.0-alpha.6 164 11/30/2024
7.0.0-alpha.5 24,286 11/3/2024
7.0.0-alpha.4 305,538 5/31/2024
7.0.0-alpha.3 821,389 10/26/2023
7.0.0-alpha.2 61,716 10/14/2023
7.0.0-alpha.1 173,393 8/28/2023
6.12.2 1,735,317 11/8/2024
6.12.1 6,982,441 9/9/2024
6.12.0 60,095,743 8/23/2023
6.11.0 24,190,272 4/20/2023
6.10.0 16,491,326 2/11/2023
6.9.0 7,714,293 1/12/2023
6.8.0 18,116,576 10/22/2022
6.7.0 35,252,417 5/18/2022
6.6.0 9,854,643 4/3/2022
6.5.1 12,409,518 2/11/2022
6.5.0 308,705 2/10/2022
6.4.0 6,371,560 1/22/2022
6.3.0 4,323,463 1/1/2022
6.2.0 16,119,233 10/25/2021
6.1.0 11,032,229 8/22/2021
6.0.0 4,554,970 8/13/2021
6.0.0-beta0003 24,212 8/11/2021
6.0.0-beta0002 16,346 8/5/2021
6.0.0-beta0001 183,513 6/1/2021
6.0.0-alpha0002 473,741 1/7/2021
6.0.0-alpha0001 597,972 7/24/2020
5.10.3 86,640,633 3/21/2020
5.10.2 7,682,980 2/9/2020
5.10.0 6,127,013 1/2/2020
5.9.0 14,492,142 8/28/2019
5.8.0 2,087,962 8/9/2019
5.7.0 8,006,250 6/8/2019
5.6.0 14,180,279 1/11/2019
5.5.3 3,710,422 11/20/2018
5.5.1 307,403 11/16/2018
5.4.2 4,040,974 9/14/2018
5.4.1 6,485,981 6/20/2018
5.4.0 644,993 6/13/2018
5.3.2 1,003,296 5/30/2018
5.3.0 2,476,476 4/19/2018
5.2.0 1,812,948 3/15/2018
5.1.2 1,293,354 2/19/2018
5.1.1 224,680 2/14/2018
5.0.0 2,111,930 2/4/2018
4.19.4 9,247,324 8/24/2017
4.19.3 1,909,721 7/4/2017
4.19.2 4,457,551 3/8/2017
4.19.0 1,506,037 2/4/2017
4.18.0 2,145,541 12/4/2016
4.17.0 937,734 11/9/2016
4.16.0 391,022 10/26/2016
4.15.0 350,216 10/11/2016
4.14.0 1,168,193 9/5/2016
4.13.1 120,076 9/1/2016
4.13.0 593,673 8/2/2016
4.12.0 1,307,832 7/15/2016
4.11.0 308,193 7/6/2016
4.10.0 30,749 7/5/2016
4.9.1 250,062 6/23/2016
4.9.0 206,163 6/13/2016
4.8.0 115,507 6/7/2016
4.7.0 79,053 6/6/2016
4.6.3 389,859 5/24/2016
4.6.2 50,069 5/22/2016
4.6.1 150,886 5/13/2016
4.5.0 327,556 4/25/2016
4.4.0 238,367 4/17/2016
4.3.2 119,449 4/3/2016
4.3.1 10,586 4/1/2016
4.3.0 82,862 3/31/2016
4.2.2 766,004 2/5/2016
4.2.1 378,382 1/10/2016
4.2.0 216,233 1/8/2016
4.1.1 206,425 12/13/2015
4.1.0 458,551 11/24/2015
4.0.1 454,190 10/21/2015
4.0.0 824,082 8/24/2015
4.0.0-beta0001 6,469 8/7/2015
3.5.0 404,962 8/2/2015
3.4.1 385,328 7/3/2015
3.4.0 163,649 6/22/2015
3.3.0 1,054,506 2/18/2015
3.2.2 288,740 12/12/2014
3.2.1 585,627 9/11/2014
3.1.229 303,923 7/29/2014
3.0.107 391,569 4/30/2014
2.2.0 793,409 12/30/2013
2.1.0 315,054 8/23/2013
2.0.1 335,489 3/3/2013
2.0.0.1 173,312 10/15/2012
1.7.1.1 135,147 3/24/2012
1.7.0 33,390 1/13/2012
1.6.0 48,517 10/31/2011
1.5.0 38,044 6/29/2011
1.4.0 29,703 3/14/2011
1.3.0.1 247,540 1/15/2011

What's new in 2.0.1
     * Small bug-fix to better intercept and/or prevent exceptions while scanning for methods annotated with [ValueFormatter]
     
     What are the major features
     * Added support for .NET 4.5, Windows Phone 7.5 and .NET for Windows Store Apps
     * Added support for MBUnit and the Gallio framework
     * Added a completely new extensible API for comparing two objects graph for equivalence that will replace the object.ShouldHave() API in the future (issue 11841).

     What's new for collections
     * Added (Not)BeInAscendingOrder() and (Not)BeInDescendingOrder() (issue 12103)
     * Added IntersectWith(otherCollection) and NotIntersectWith(otherCollection) (issue 12248)
     * ContainInOrder() now has an overload that only takes a params object[] argument to support a more fluent syntax in case you don't specify the reason (issue 12313).
     * Added ContainSingle(Expression<Func<T, bool=""> predicate>) that asserts there is only a single element in the collection that matches the specified predicate (issue 12313).
     * Added support for a lambda that is used for checking the equality of two collections (issue 11925).
     * Fixed a bug that occurs when two collections are compared for equality but the collection contains null (issue 12296)

     What's new for strings
     * When strings differ in length, it will report the expected and actual lengths as part of the failure messages (issue 12422)
     * An ArgumentOutOfRangeException was thrown when asserting a string started with a specific string, but the first string was shorter than the expected string (issue 12293)

     What's new for numbers
     * Added support for using Should().Be() on nullable numeric types (issue 11837)
     * Added BeOneOf() to verify that the value matching one of the provided values (issue 12016).
     * Added support for (nullable) decimals
     * BePositive() and BeNegative() now also work for floats and doubles (issue 11946)

     What's new for dates and times
     * Added NotBe()
     * Added BeOneOf() to verify that the value matching one of the provided values (issue 12016).
     * Added BeCloseTo() to assert that a datetime is within a specified number of milliseconds from another datetime value. Usefull for example when your database truncates datetime values (issue 12070).
     * If a DateTime value has milliseconds then they will be displayed in an assertion failure message (issue 12072).

     What's new for comparing object graphs
     * You can now apply the property equality comparisons to entire collections of objects. It doesn't matter what kind of collections types you use, as long as they contain the same number of objects which properties are the same (issue 11743).
     * Included the index of the mismatching object when comparing a collection for structural equality
     * An exception was thrown when comparing the properties of an object, and there were cyclic references. You can now configure if you want this to be ignored.
     * Added support for comparing references to an interface rather than concrete types (issue 11840).
     * Write-only properties are ignored (issue 11808)
     * Fixed a stack overflow exception when formatting an object graph containing static cyclic references.
     * Fixed an exception that was thrown when formatting an object graph where one of the properties threw an exception.
     * Added support for comparing two anonymous types using SharedProperties() (issue 11886).
     * The name of a DateTime property was not included in the error message when AllProperties() failed on that property

     What's new for types
     * Added the AllTypes class with a static method From(Assembly assembly) as a wrapper around the Types extension method on Assembly (issue 12186). This allows for a more fluent syntax like AllTypes.From(assembly).ThatImplement<SomeInterface>().Should().BeDecoratedWith<SomeAttribute>();
     * Added support for asserting the properties of an attribute have a specific value (issue 12186).

     What other improvements are new
     * Fixed an exception when asserting equality of dictionaries that contain nulls (issue 12004).
     * The NuGet package will automatically add references to System.Xml and System.Xml.Linq
     * Implemented ShouldThrow<TException>() for Func<Task>, to support working with async methods (issue 12148)
     * Improved several error messages in XDocument- and XElementAssertions
     * All overloads that take a reason have been removed and replaced with optional parameter
     * Allowed ShouldRaisePropertyChangeFor(null) to verify that the INotifyPropertyChanged was raised for all properties.
     * The list of ValueFormatters on the Verification class can be changed to insert a custom formatter.
     * Introduced a mechanism to override the way FA formats objects in failure message by annotating a static method with the [ValueFormatter] attribute (issue 12364).
     * Introduced a mechanism so that the failure message of custom extensions can specify the {context} tag.
     * NuGet package is now based on NuGet 2.0.

     Breaking changes
     * The FluentAssertions.Assertions namespace no longer exists so that all extension methods are always available through the FluentAssertions namespace. Just use a global search-replace to remove all those usage statements.
     * Many of the assertion classes have moved into dedicated namespaces. You might have to fix any code that inherits from those classes.
     * Remove the obsolete Verify() methods from the Verification class