#unit-testing #dependency-injection #simple-injector
#модульное тестирование #внедрение зависимостей #простой инжектор
Вопрос:
Я пишу интеграционные тесты, которые настраивают контейнер для каждой тестовой настройки. Я повторно использую код регистрации, но получаю сообщение об ошибке при попытке зарегистрировать зависимость в Lifestyle.В области видимости я получаю эту ошибку:
Настройка: Система.Исключение InvalidOperationException: чтобы иметь возможность использовать образ жизни.Свойство с областью действия, пожалуйста, убедитесь, что контейнер настроен на образ жизни с областью действия по умолчанию, установив контейнер.Опции.Свойство DefaultScopedLifestyle с требуемым образом жизни с областью действия для вашего типа приложения.
Какой DefaultScopedLifestyle я должен использовать в моем случае? Область действия действительно должна быть одноэлементной, но помните, что я повторно использую регистрационный код из приложения webapi.
Ответ №1:
Для сценариев интеграционных тестов могут использоваться стили жизни с областью действия для области жизненного цикла и для области контекста выполнения. Область для каждого времени жизни позволяет определить область, которая привязана к потоку, в то время как область для каждого конкурса выполнения позволяет определить область, которая будет проходить через асинхронные операции.