public static Mock<ILogger> GetILogger()
{
    // 创建一个模拟的 ILogger 实例
    var loggerMock = new Mock<Microsoft.Extensions.Logging.ILogger>();
    // 配置模拟对象,在调用 Log 方法时打印日志消息到控制台
    loggerMock.Setup(x => x.Log(
        It.IsAny<LogLevel>(),
        It.IsAny<EventId>(),
        It.IsAny<object>(),
        It.IsAny<Exception>(),
        It.IsAny<Func<object, Exception, string>>()
    )).Callback<LogLevel, EventId, object, Exception, Func<object, Exception, string>>((logLevel, eventId, state, exception, formatter) =>
    {
        Console.WriteLine($"[{logLevel}] - {formatter(state, exception)}");
    });

    return loggerMock;
}

标签: C#, Mock

评论已关闭