Я пытаюсь, чтобы модульные тесты не полагались на вызов container.Resolve‹T›() для своих зависимостей.
В настоящее время я использую AutoFac 2.2.4 и пробовал xUnit.NET и NUnit, но у обоих есть эта проблема:
Для этого объекта не определен конструктор без параметров
Как обойти эту проблему? Поддерживает ли это конкретная среда модульного тестирования или просто то, как она настроена?
Я не должен этого делать? Или я могу настроить тестовый класс для работы с конструктором, который имеет только зависимость?
Вот часть кода:
public class ProductTests : BaseTest
{
readonly private IProductRepository _repo;
public ProductTests(IProductRepository r)
{
_repo = r;
}
//working unit tests here with default constructor
}
Я решил неправильно инициализировать контейнер в конструкторе базового класса?
public abstract class BaseTest
{
protected BaseTest()
{
var builder = new ContainerBuilder();
builder.RegisterType<ProductRepository>().As<IProductRepository>();
builder.Build();
}
}