Я пытаюсь понять, как использовать инъекцию зависимостей с XUnit. Моя цель - внедрить свой ProductRepository в свой тестовый класс.
Вот код, который я пытаюсь:
public class DatabaseFixture : IDisposable
{
private readonly TestServer _server;
public DatabaseFixture()
{
_server = new TestServer(TestServer.CreateBuilder().UseStartup<Startup>());
}
public void Dispose()
{
// ... clean up test data from the database ...
}
}
public class MyTests : IClassFixture<DatabaseFixture>
{
DatabaseFixture _fixture;
public ICustomerRepository _repository { get; set; }
public MyTests(DatabaseFixture fixture, ICustomerRepository repository)
{
_fixture = fixture;
_repository = repository;
}
}
Вот ошибка: следующие параметры конструктора не имеют совпадающих данных фикстур (репозиторий ICustomerRepository)
Это заставляет меня думать, что XUnit не поддерживает внедрение зависимостей, только если это Fixture.
Может ли кто-нибудь дать мне способ получить экземпляр ProductRepository в моем тестовом классе с помощью XUnit? Я считаю, что правильно запускаю тестовый сервер, поэтому Startup.cs запускает и настраивает DI.