Как инициализировать IOption <AppSettings> для модульного тестирования службы .NET Core MVC?
У меня есть основной сервис MVC для .NET.
У меня есть контроллер, который я хочу проверить. Этот контроллер имеет аргумент конструктора IOptions, где AppSettings - это мой класс для настроек конфигурации (я храню в нем строку подключения к базе данных). Он вводится из настройки в ConfigureServices в Startup.cs
Служба отдыха работает. Моя проблема в том, что я настроил тестовый проект MSTest для тестирования сервиса. Я не могу понять, как инициализировать экземпляр IOptions, чтобы удовлетворить конструктор моего контроллера.
Ответы
Ответ 1
Я обнаружил ответ вскоре после публикации вопроса.
использовать класс помощника Microsoft.Extensions.Options.Options
Создает оболочку вокруг экземпляра TOptions, чтобы вернуть себя как IOptions
AppSettings appSettings = new AppSettings() { ConnectionString = "..." };
IOptions<AppSettings> options = Options.Create(appSettings);
MyController controller = new MyController(options);