【发布时间】:2018-01-16 18:31:25
【问题描述】:
我根据https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/options使用IOptions<>。
我有以下控制器。
using Microsoft.Extensions.Options;
public class MyController : Controller
{
private readonly ILogger<SourceController> _logger;
private readonly MyOptions _option;
public SourceController(ILogger<SourceController> logger, IOptions<SyncOptions> optionAccessor)
{
_logger = logger;
_option = optionAccessor.Value;
}
现在我正在创建一个单元测试设置。如何模拟 IOptions()?
MyTest() { // Test constructor
var loggerFactory = new LoggerFactory().AddConsole(LogLevel.Information).AddDebug().AddNLog();
loggerFactory.ConfigureNLog("nlog.config");
logger = loggerFactory.CreateLogger<MyController>();
option = new Options<MyOptions>(); // Error! How to mock IOptions<MyOptions>()?
app = new MyController(logger, option);
【问题讨论】:
-
每当你想到 mock,就想到 Moq ;)
标签: c# asp.net-core .net-core