Table of Contents

Class MinimalHostTestFactory

Namespace
Codebelt.Extensions.Xunit.Hosting
Assembly
Codebelt.Extensions.Xunit.Hosting.dll

Provides a set of static methods for IHost unit testing (minimal style).

public static class MinimalHostTestFactory
Inheritance
MinimalHostTestFactory

Examples

The following example uses MinimalHostTestFactory to create a lightweight host context for testing a simple service. Unlike the generic host factory, the minimal host avoids the full IHostBuilder pipeline and is suitable for isolated unit tests that only need dependency injection and logging.

using System;
using Codebelt.Extensions.Xunit.Hosting;
using Microsoft.Extensions.DependencyInjection;

namespace HostFixtureTests;

public class MinimalHostFactoryExample
{
    public void Demonstrate()
    {
        using var host = MinimalHostTestFactory.Create(
            services => services.AddSingleton(new Version(1, 0, 0)));
        var version = host.Host.Services.GetRequiredService<Version>();
        Console.WriteLine(version);
    }
}

Methods

Create(Action<IServiceCollection>, Action<IHostApplicationBuilder>, IMinimalHostFixture)

Creates and returns an IHostTest implementation.

public static IHostTest Create(Action<IServiceCollection> serviceSetup = null, Action<IHostApplicationBuilder> hostSetup = null, IMinimalHostFixture hostFixture = null)

Parameters

serviceSetup Action<IServiceCollection>

The IServiceCollection which may be configured.

hostSetup Action<IHostApplicationBuilder>

The IHostBuilder which may be configured.

hostFixture IMinimalHostFixture

An optional IMinimalHostFixture implementation to use instead of the default ManagedMinimalHostFixture instance.

Returns

IHostTest

An instance of an IHostTest implementation.

CreateWithHostBuilderContext(Action<HostBuilderContext, IServiceCollection>, Action<IHostApplicationBuilder>, IMinimalHostFixture)

Creates and returns an IHostTest implementation.

public static IHostTest CreateWithHostBuilderContext(Action<HostBuilderContext, IServiceCollection> serviceSetup = null, Action<IHostApplicationBuilder> hostSetup = null, IMinimalHostFixture hostFixture = null)

Parameters

serviceSetup Action<HostBuilderContext, IServiceCollection>

The IServiceCollection which may be configured.

hostSetup Action<IHostApplicationBuilder>

The IHostBuilder which may be configured.

hostFixture IMinimalHostFixture

An optional IMinimalHostFixture implementation to use instead of the default ManagedMinimalHostFixture instance.

Returns

IHostTest

An instance of an IHostTest implementation.