Я получил пакет xunit.DependencyInjection и создал свою конструкцию с моими интерфейсами. Тестовый пример компилируется, но когда я запускаю xunits, он не выполняет мою инъекцию зависимостей конструктора.
public class TestSuite{
IARepository _aRepository;
IBRepository _bRepository;
public TestSuite(IARepository aRepository, IBRepository bRepository)
{
_aRepository = aRepository;
_bRepository = bRepository;
}
}
GitHub предполагает, что инъекция конструктора возможна: https://github.com/pengweiqhca/Xunit.DependencyInjection/tree/master/Xunit.DependencyInjection.Test
Startup.cs
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
var configuration = new ConfigurationBuilder()
.SetBasePath(System.IO.Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", false, true)
.Build();
var connectionString = configuration.GetConnectionString("A_DbCoreConnectionString");
services.AddDbContext<AContext>(options1 => options1.UseSqlServer(connectionString));
connectionString= configuration.GetConnectionString("B_DbCoreConnectionString");
services.AddDbContext<BContext>(options2 => options2.UseSqlServer(connectionString));
services.AddTransient<IARepository, ARepository>();
services.AddTransient<IBRepository, BRepository>();
}
}
A и B Repository.cs
public class ARepository :IARepository
{
public AContext _dbContext;
public ARepository(AContext dbContext)
{
_dbContext = dbContext;
}
...
}
public class BRepository :IBRepository
{
public BContext _dbContext;
public BRepository(BContext dbContext)
{
_dbContext = dbContext;
}
...
}