首页 文章

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

提问于
浏览
14

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

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

1 回答

  • 31

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

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

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

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

相关问题