aweXpect.Core
0.10.0
See the version list below for details.
dotnet add package aweXpect.Core --version 0.10.0
NuGet\Install-Package aweXpect.Core -Version 0.10.0
<PackageReference Include="aweXpect.Core" Version="0.10.0" />
paket add aweXpect.Core --version 0.10.0
#r "nuget: aweXpect.Core, 0.10.0"
// Install aweXpect.Core as a Cake Addin #addin nuget:?package=aweXpect.Core&version=0.10.0 // Install aweXpect.Core as a Cake Tool #tool nuget:?package=aweXpect.Core&version=0.10.0
aweXpect
Assert unit tests in natural language using awesome expectations.
Getting started
Install the
aweXpect
nuget packagedotnet add package aweXpect
Add the following
using
statement:using aweXpect;
This brings the static
Expect
class and lots of extension methods into scope.See the documentation for usage scenarios.
Features
Async everything
By using async assertions per default, we have a consistent API and other perks:
- Complete async support, e.g.
IAsyncEnumerable
HttpResponseMessage
or similar async types - No need to distinguish between
action.Should().Throw()
andawait asyncAction.Should().ThrowAsync()
- The evaluation is only triggered after the complete fluent chain is loaded, which has some nice benefits:
Because
can be registered once as a general method that can be applied at the end of the expectation instead of cluttering all methods with thebecause
andbecauseArgs
parametersWithCancellation
can also be registered at the end an applies aCancellationToken
to all async methods which allows cancellation ofIAsyncEnumerable
evaluations- Expectations can be combined directly (via
Expect.ThatAll
) instead of relying on global state (e.g. assertion scopes)
Extensible
We added lots of extensibility points to allow you to build custom extensions.
Similar to fluentassertions extensibility is achieved via extension methods on .Should()
:
- for new types
write a new.Should()
extension method onIExpectSubject<TType>
- for existing types
writing an extension method onIThat<TType>
Performant
A focus on performance allows you to execute your tests as fast as possible.
Special care is taken for the happy case (succeeding tests) to be as performant as possible. See the benchmarks for more details.
Product | Versions 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. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.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 | 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. |
-
.NETStandard 2.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on aweXpect.Core:
Package | Downloads |
---|---|
aweXpect
Assert unit tests in natural language using awesome expectations. |
|
aweXpect.Testably
Expectations for the file and time system from Testably.Abstractions. |
GitHub repositories
This package is not used by any popular GitHub repositories.