Я пытаюсь, чтобы модульные тесты не полагались на вызов 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();
}
}