Mokkit.Containers.Autofac
0.4.0
dotnet add package Mokkit.Containers.Autofac --version 0.4.0
NuGet\Install-Package Mokkit.Containers.Autofac -Version 0.4.0
<PackageReference Include="Mokkit.Containers.Autofac" Version="0.4.0" />
<PackageVersion Include="Mokkit.Containers.Autofac" Version="0.4.0" />
<PackageReference Include="Mokkit.Containers.Autofac" />
paket add Mokkit.Containers.Autofac --version 0.4.0
#r "nuget: Mokkit.Containers.Autofac, 0.4.0"
#:package Mokkit.Containers.Autofac@0.4.0
#addin nuget:?package=Mokkit.Containers.Autofac&version=0.4.0
#tool nuget:?package=Mokkit.Containers.Autofac&version=0.4.0
<p align="center"> <img src="https://raw.githubusercontent.com/GrafGenerator/mokkit/main/assets/banner.png" alt="Mokkit — write tests that read like a story, in plain C#" width="820"> </p>
Mokkit gives your tests the readability of BDD tools like Cucumber/SpecFlow, but with no DSL: no feature files, no step bindings, no runtime glue. The "steps" are just C# extension methods you author — your project's testing vocabulary — so you keep full IDE support (autocomplete, go-to-definition, refactoring) and a test that doesn't make sense simply won't compile.
It's a thin orchestration layer, not a framework: run it inside xUnit / NUnit / MSTest / TUnit, mock with Moq / NSubstitute / FakeItEasy, and wire with Microsoft DI / Autofac / Castle Windsor (or the dependency-free Bag). The same Arrange / Act / Inspect vocabulary scales from a mocked unit test to a full Testcontainers end-to-end run.
// A Mokkit test reads like the scenario it describes.
[Fact]
public async Task Suspending_a_client_reflects_everywhere()
{
await Arrange
.NewClient(out var clientId, WithName("Acme Corporation"))
.CacheHasClient(clientId);
await Act(clientId, ClientStatus.Suspended);
await Inspect
.ApiClientEventually(clientId, c => c.Status == Suspended)
.DbClient(clientId, c => c!.Status.ShouldBe(Suspended))
.EventPublished("clients.updated", clientId);
}
NewClient, CacheHasClient, ApiClientEventually, DbClient, EventPublished aren't Mokkit APIs — they're
your verbs. Mokkit provides the Arrange / Act / Inspect shape and the machinery underneath.
Install
Core + a DI adapter + a mock adapter (prerelease for now):
dotnet add package Mokkit --prerelease
dotnet add package Mokkit.Containers.Microsoft.Extensions.DependencyInjection --prerelease
dotnet add package Mokkit.Containers.NSubstitute --prerelease
Packages
| Package | Purpose |
|---|---|
Mokkit |
Core: Stage, Arrange/Act/Inspect, captures, the [MokkitCapture] source generator |
Mokkit.Containers.Microsoft.Extensions.DependencyInjection · .Autofac · .CastleWindsor |
DI container adapters |
Mokkit.Containers.Moq · .NSubstitute · .FakeItEasy |
Mock library adapters |
Mokkit.Containers.Bag |
Dependency-free "hold a few instances" container |
Documentation
Full guides, concepts and API reference: mokkit.net
- Introduction · Why Mokkit? (vs BDD/DSL) · Quickstart
- Building your test vocabulary — the idea Mokkit is built around
A worked, three-tier example (unit / integration / e2e) lives in example/Example1.
License
MIT © Nikita Ivanov
| 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 was computed. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.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. |
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.4.0 | 53 | 8/15/2026 |
| 0.3.0-preview.1.2 | 81 | 7/11/2026 |
| 0.3.0-preview.1 | 61 | 7/8/2026 |