AutoMocker.NSubstitute
0.0.1
dotnet add package AutoMocker.NSubstitute --version 0.0.1
NuGet\Install-Package AutoMocker.NSubstitute -Version 0.0.1
<PackageReference Include="AutoMocker.NSubstitute" Version="0.0.1" />
<PackageVersion Include="AutoMocker.NSubstitute" Version="0.0.1" />
<PackageReference Include="AutoMocker.NSubstitute" />
paket add AutoMocker.NSubstitute --version 0.0.1
#r "nuget: AutoMocker.NSubstitute, 0.0.1"
#:package AutoMocker.NSubstitute@0.0.1
#addin nuget:?package=AutoMocker.NSubstitute&version=0.0.1
#tool nuget:?package=AutoMocker.NSubstitute&version=0.0.1
AutoMocker.NSubstitute
An auto-mocking container for NSubstitute — the NSubstitute flavor of Moq.AutoMocker.
Construct the class under test and let the container automatically generate substitutes for any dependencies you have not explicitly supplied.
Installation
dotnet add package AutoMocker.NSubstitute
The library types live in the NSubstitute.AutoMock namespace.
Usage
var mocker = new AutoMocker();
// Creates CarFactory with substitutes for all constructor dependencies
CarFactory carFactory = mocker.CreateInstance<CarFactory>();
// Configure a dependency using regular NSubstitute syntax
mocker.GetSubstitute<IEngineProvider>()
.GetEngine()
.Returns(new Engine());
// Provide explicit instances when needed
mocker.Use<IColorPicker>(new RedColorPicker());
Car car = carFactory.Create();
// Verify using regular NSubstitute syntax
mocker.GetSubstitute<IEngineProvider>().Received(1).GetEngine();
Features
CreateInstance<T>()— constructsT, resolving constructor arguments from the container or generating substitutes.GetSubstitute<T>()— retrieves (or creates) the substitute used for a service, ready to be configured withReturns,Received, etc.Use(...)/With(...)— register explicit instances, factories, or implementation types.CreateSelfSubstitute<T>()/WithSelfSubstitute<T>()— partial substitutes (Substitute.ForPartsOf) so you can test a class while substituting selected virtual members.Combine(...)— one substitute instance registered under multiple service types.- Built-in resolution of
IEnumerable<T>, arrays,Lazy<T>,Func<T>, andCancellationTokendependencies. AsDisposable()— dispose all disposable instances tracked by the container.- Implements
IServiceProvider.
Source generators
The package ships with source generators (ported from Moq.AutoMocker) that light up automatically:
- Constructor null-argument tests — decorate a partial test class with
[ConstructorTests(TargetType = typeof(MyClass))]and unit tests assertingArgumentNullExceptionfor each constructor parameter are generated for MSTest, NUnit, xUnit, or TUnit. WithOptions<T>()— generated whenMicrosoft.Extensions.Optionsis referenced; wires up the options pattern services.WithFakeLogging()— generated whenMicrosoft.Extensions.Diagnostics.Testingis referenced; resolvesILogger/ILogger<T>/ILoggerFactorywithFakeLogger.WithFakeTimeProvider()— generated whenMicrosoft.Extensions.TimeProvider.Testingis referenced.WithKeyedService(...)— generated whenMicrosoft.Extensions.DependencyInjection.Abstractions8+ is referenced.WithMeterFactory()— generated whenSystem.Diagnostics.DiagnosticSource10+ is referenced.WithApplicationInsights()— generated whenMicrosoft.ApplicationInsightsis referenced.
Each generator can be disabled with an MSBuild property, e.g. <EnableAutoMockerNSubstituteOptionsGenerator>false</EnableAutoMockerNSubstituteOptionsGenerator>.
Differences from Moq.AutoMock
NSubstitute has no Mock<T> wrapper, behaviors, or setup expressions, so this package intentionally omits the Moq-specific APIs
(Setup, Verify, MockBehavior, DefaultValue, etc.). Configure and verify substitutes directly using standard NSubstitute syntax
on the objects returned from GetSubstitute<T>().
| 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. |
-
.NETStandard 2.0
- NonBlocking (>= 2.1.2)
- NSubstitute (>= 6.0.0)
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.0.1 | 37 | 7/30/2026 |
| 0.0.1-ci0017 | 30 | 7/29/2026 |