Я пытаюсь разрешить обработчик в моем тесте, используя autofac, а затем внедряю его макет таким образом:
_mockedHandlerInstance = new TestHandler(_repository.Object, _mediator.Object, _logger.Object);
containerBuilder.RegisterInstance(_mockedHandlerInstance).As<HandlerToProcess>();
Тот же контейнер создается в классе TestBase, которыйнаследуется в других тестовых классах, но когда я пытаюсь использовать что-то связанное с HandlerToProcess
, контейнер возвращает тот же экземпляр, который я создал и смоделировал ранее в вышеприведенном классе.
Итак, что мне нужносостоит в том, чтобы создать конкретный макет этого дескриптора для каждого класса и использовать автоинфекцию для их внедрения. Ребята, вы все равно знаете, как это сделать?
Класс TestBase
просто инициализирует контейнер и регистрирует несколько сборок:
Settings.LoadConfigContext("configurationSettings");
EffortProviderFactory.ResetDb();
_containerBuilder = new ContainerBuilder();
var assemblies = new Assembly[]
{
typeof(AppModule).Assembly,
typeof(Repository).Assembly,
};
_containerBuilder.RegisterModule(new AutofacModule(assemblies));
Я также использую усилие, но я не думаю, что это может вызвать проблему.