.NET Standard 2.0 .NET Framework 3.5
dotnet add package NFluent --version
NuGet\Install-Package NFluent -Version
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="NFluent" Version="" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add NFluent --version
#r "nuget: NFluent,"
#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 NFluent as a Cake Addin
#addin nuget:?package=NFluent&version=

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

V 3.0.1


  • Fix Check.ThatCode not awaiting Task returning lambdas in V3.0.0. Note that Task<T> returning lambdas do work in V3.0.0

  • an InvalidOperation is thrown when using Check.ThatCode on an async void method/lambda (as those cannot be awaited)

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net35 is compatible.  net40 was computed.  net403 was computed.  net45 was computed.  net451 was computed.  net452 was computed.  net46 is compatible.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 3.5

    • No dependencies.
  • .NETFramework 4.6

    • No dependencies.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages (9)

Showing the top 5 NuGet packages that depend on NFluent:

Package Downloads

NFluent checks for checking HttpResponseMessages.


Iago is a tool to write bdd like tests in kre. use `iago.runner` to execute your tests


A library for writing flexible and easy to maintain acceptance tests


multi dimension dictionary with expiration mechanism for cache invalidation


Iago runner is a tool to run bdd like tests in kre

GitHub repositories (15)

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

Repository Stars
More than a ReClass port to the .NET platform.
WireMock.Net is a flexible product for stubbing and mocking web HTTP responses using advanced request matching and response templating. Based on the functionality from, but extended with more functionality.
The FileHelpers are a free and easy to use .NET library to read/write data from fixed length or delimited records in files, strings or streams
This repository was deprecated, use:
Entity Component System framework aiming for syntax and usage simplicity with maximum performance for game development.
Version Downloads Last updated 15,461 6/9/2023 10,335 5/6/2023 8,285 3/3/2022 249 2/27/2022 256 2/27/2022 255 2/24/2022
2.8.0 361,431 2/4/2022
2.7.2 230,799 4/8/2021
2.7.1 85,159 12/29/2020
2.7.0 281,175 2/11/2020
2.6.0 193,048 8/19/2019
2.5.0 155,596 3/12/2019
2.4.0 111,278 10/2/2018
2.3.1 85,767 6/12/2018
2.3.0 1,806 6/9/2018
2.2.0 80,451 2/10/2018
2.1.1 26,910 1/5/2018
2.1.0 11,631 12/10/2017
2.0.0 62,777 6/27/2017
2.0.0-alpha-44 1,979 5/10/2017
1.3.1 219,962 7/28/2014
1.2.0 8,797 6/16/2014
1.1.0 4,757 2/14/2014
1.0.0 3,274 12/31/2013
0.11.0 1,898 11/26/2013
0.9.0 1,968 8/6/2013
0.8.0 1,809 7/6/2013
0.7.0 1,640 6/4/2013
0.6.0 1,615 5/19/2013
0.5.0 1,642 4/21/2013


## Fix

* Fix `Check.ThatCode` not awaiting `Task` returning lambdas in V3.0.0. Note that `Task<T>` returning lambdas do work in V3.0.0

* an InvalidOperation is thrown when using `Check.ThatCode` on an async void method/lambda (as those cannot be awaited)

# V 3.0.0

## Major changes

* You can execute multiple check as a single batch and get every failures, instead of the first one. This can be achieved using:

* `Check.StartBatch`: stores the result of each subsequent check(s) and notifies all the errors when the returned object is disposed. Such as






Note that any actual exception thrown during the check phase will prevent any subsequent check from behind executed (1) and may not be reported as it may be replaced by an assertion failure exception.

This comes from C# exeption handling logic.

* You can provide anonymous types and tuples when using IsEqualTo against any type. The check will be made against all

_sut_'s propertie.

* NFluent supports Net 3.5 SP1, Net. 4.5.2 +, Net Standard 2.0+. Dropped support for Net Framework 2.0, 3.0, and 4.0, as well Net Standard<2.0.

If you can't upgrade your framework version to a supported one, please use NFluent 2.7.1.

## New Checks

* `Is`: Checks if _sut == expected_. This is a strongly typed equivalent to `IsEqualTo`.

* `IsGreaterOrEqualThan`: Checks if _sut_ >= _expected_.

* `IsLessOrEqualThan`: Checks if _sut_ <= _expected_.

## New feautres

* You can provide custom comparer for any type, using `Check.RegisterComparer` like this `Check.Register<MyType>(MyCustomComparer)`.

You can also use `RegisterLocalComparer` to limit its usage to a declaration scope.

## Breaking changes

* Equality logic changed for `IDictionary`: dictionaries are considered equals if they have the same keys and

the same values for each key. In NFluent V2, entries needed to be declared in the some order or else they were considered as **different** but **equivalent**.

* You need to specify

* `IsAnInstanceOf<nullableType>(null)` now fails (with an appropriate message). Previously, it did succeed. But,

as captured in issue #68, this behavior was triggered by a bug and kept due to a poor error message when fixed.

* The `IStructCheck<T>` interface has been removed as well as associated extensibility helper. Those were dedicated

to value `types`, you can migrate your existing extensions to the `ICheck<T>` type instead. Please open an issue if

you need help.

## Fixes

* HasFieldWithSameValues resulted in false positive when string fields had the same value.

* IsNotEqualTo now properly preserves expected type

* Improved rerporting of differences for enumerations and dictionaries to make them more consistent and fixed some inaccuracies.

## GitHub Issues

* #325, #327, #330, #332

### Obsolete

#### Marked as obsolet

* `ThatAsyncCode`: you can now use `ThatCode` even for async methods.

Here is the list of methods, classes and other obsolete stuff that have been removed in this version as well

as workaround advices.

* Drop support for Net 2.0 and 3.0: keep using NFluent V2.x versions if you support for these.

* `Check.ThatEnum`has been removed. You must use `Check.That` instead.

* `ILambdaCheck`: the definition was kept to prevent breaking build, but it was no longer used. If this is a

problem for you, open an issue

* `IsPositive` (available for numbers): please use `IsStrictlyPositive` instead.

* `IsNegative` (available for numbers): please use `IsStrictlyNegative` instead.

* `IsLessThan` (available for numbers): please use `IsStrictlyNegative` instead.

* `IsGreaterThan` (available for numbers): please use `IsStrictlyGreaterThan` instead.

* `IsSameReferenceThan`: please use `IsSameReferenceAs` instead.

* `HasFieldsEqualToThose`: please use `HasFieldsWithSameValues` instead.

* `HasFieldsNotEqualToThose`: please use `HasNotFieldsWithSameValues` instead.

* `IsAFaillingCheckWithMessage`: please use `IsAFailingCheckWithMessage` instead.

* `IsAFaillingCheck`: please use `IsAFailingCheck` instead.

* `Properties` (available for enumeration): please use `Extracting` instead.

* `Checker.BuildLinkWhich` (used for custom extension): please use `ExtensibilityHelper.BuildCheckLinkWhich` instead.

* `Checker.ExecuteCheckAndProvideSubItem` (used for custom extension): please 'ExtensibilityHelper' static class methods instead.