fm.Extensions.Testing.DependencyInjection
1.0.0
Provides a base class for tests based on Microsoft.Extensions.DependencyInjection. Use common Startup.cs patterns like ConfigureServices(...) and Configure(...) to setup your tests.
Commonly used types:
ServiceTestsBase
Example:
[TestClass]
public class DatabaseCleanupBackgroundServiceTests : ServiceTestsBase
{
protected override void ConfigureServices([NotNull] IServiceCollection services)
{
base.ConfigureServices(services);
services.AddSingleton<DatabaseCleanupBackgroundService>();
services.AddSingleton(sp => A.Fake<IDatabaseCleanupService>());
services.AddSingleton<ILogRecorder, LogRecorderProvider>();
}
protected override void Configure([NotNull] IServiceProvider services, [NotNull] ILoggerFactory loggerFactory)
{
base.Configure(services, loggerFactory);
loggerFactory.AddLogRecorder(services);
}
[TestMethod]
public void CleanupSuggestedFailTest()
{
IDatabaseCleanupService databaseCleanupService = this.GetRequiredService<IDatabaseCleanupService>();
A.CallTo(() => databaseCleanupService.RemoveObsoleteProjectsAsync(A<CancellationToken>.Ignored)).Throws(new InvalidOperationException(nameof(this.CleanupSuggestedFailTest)));
DatabaseCleanupBackgroundService service = this.GetRequiredService<DatabaseCleanupBackgroundService>();
service.CleanupSuggested();
service.WaitAll();
ILogRecorder logRecorder = this.GetRequiredService<ILogRecorder>();
logRecorder.Messages.Single(m => m.LogLevel == LogLevel.Error).Exception.ShouldBeOfType<InvalidOperationException>().Message.ShouldBe(nameof(this.CleanupSuggestedFailTest));
}
}
See the version list below for details.
Install-Package fm.Extensions.Testing.DependencyInjection -Version 1.0.0
dotnet add package fm.Extensions.Testing.DependencyInjection --version 1.0.0
<PackageReference Include="fm.Extensions.Testing.DependencyInjection" Version="1.0.0" />
paket add fm.Extensions.Testing.DependencyInjection --version 1.0.0
#r "nuget: fm.Extensions.Testing.DependencyInjection, 1.0.0"
// Install fm.Extensions.Testing.DependencyInjection as a Cake Addin
#addin nuget:?package=fm.Extensions.Testing.DependencyInjection&version=1.0.0
// Install fm.Extensions.Testing.DependencyInjection as a Cake Tool
#tool nuget:?package=fm.Extensions.Testing.DependencyInjection&version=1.0.0
Release Notes
Initial release.
Dependencies
-
- fm.Extensions.Logging.TestContext (>= 1.2.0)
- fm.Extensions.Testing (>= 1.1.0)
- Microsoft.Extensions.Configuration (>= 1.0.0)
- Microsoft.Extensions.DependencyInjection (>= 1.0.0)
- Microsoft.Extensions.Logging (>= 1.0.0)
- Microsoft.Extensions.Logging.Debug (>= 1.0.0)
Used By
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.