【问题标题】:How to initialize IOption<AppSettings> for unit testing a .NET core MVC service?如何初始化 IOption<AppSettings> 以对 .NET 核心 MVC 服务进行单元测试?
【发布时间】:2017-05-14 22:46:30
【问题描述】:

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

其余服务有效。我的问题是我已经建立了一个 MSTest 测试项目来测试服务。我不知道如何初始化 IOptions 的实例以满足我的控制器的构造函数。

【问题讨论】:

  • 你可能想研究一个像 NSubstitute 或 Moq 这样的模拟框架。这将允许您创建一个模拟 IOptions 对象,您可以在单元测试中将其传递到控制器的实例中。
  • @IsThatQueeblo 我想出了一个简单的方法来初始化IOption 的实例(我发布了一个答案)但是我还需要在 Http 请求中模拟一些标头。我想那些模拟框架也会提供这个吗?

标签: c# asp.net-mvc unit-testing asp.net-core


【解决方案1】:

我在发布问题后不久就找到了答案。

使用 Helper 类Microsoft.Extensions.Options.Options

围绕 TOptions 的实例创建一个包装器,以将自身返回为 选项

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    相关资源
    最近更新 更多