如何初始化IOption <AppSettings>以便对.NET核心MVC服务进行单元测试?

Jam*_*zba 24 c# asp.net-mvc unit-testing asp.net-core

我有一个.NET核心MVC休息服务.我有一个我想测试的控制器.此控制器具有IOptions的构造函数参数,其中AppSettings是我的配置设置类(我将数据库连接字符串存储在其中).它从Startup.cs中的ConfigureServices中的设置注入

休息服务工作.我的问题是我已经设置了一个MSTest测试项目来测试服务.我无法弄清楚如何初始化IOptions实例以满足我的控制器的构造函数.

Jam*_*zba 48

在发布问题后不久我就发现了答案.

使用助手类 Microsoft.Extensions.Options.Options

在TOptions实例周围创建一个包装器,将其自身返回为IOptions

AppSettings appSettings = new AppSettings() { ConnectionString = "..." };
IOptions<AppSettings> options = Options.Create(appSettings);
MyController controller = new MyController(options);
Run Code Online (Sandbox Code Playgroud)