I have a asp.net core application that uses dependency injection defined in the startup.cs class of the application:
public void ConfigureServices(ISer
A simple way, I wrote a generic dependency resolver helper class and then built the IWebHost in my unit test class.
Generic Dependency Resolver
public class DependencyResolverHelpercs
{
private readonly IWebHost _webHost;
///
public DependencyResolverHelpercs(IWebHost WebHost) => _webHost = WebHost;
public T GetService()
{
using (var serviceScope = _webHost.Services.CreateScope())
{
var services = serviceScope.ServiceProvider;
try
{
var scopedService = services.GetRequiredService();
return scopedService;
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
};
}
}
}
Unit Test Project
[TestFixture]
public class DependencyResolverTests
{
private DependencyResolverHelpercs _serviceProvider;
public DependencyResolverTests()
{
var webHost = WebHost.CreateDefaultBuilder()
.UseStartup()
.Build();
_serviceProvider = new DependencyResolverHelpercs(webHost);
}
[Test]
public void Service_Should_Get_Resolved()
{
//Act
var YourService = _serviceProvider.GetService();
//Assert
Assert.IsNotNull(YourService);
}
}