Попытка добавить внедренный экземпляр в тестовый класс с помощью autofac, но контейнер внедряет тот же экземпляр в другие тестовые классы. - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь разрешить обработчик в моем тесте, используя 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));

Я также использую усилие, но я не думаю, что это может вызвать проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...