且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在 ASP.NET Core 中使用 ILogger 进行单元测试

更新时间:2022-06-13 22:27:57

只需模拟它以及任何其他依赖项:

Just mock it as well as any other dependency:

var mock = new Mock<ILogger<BlogController>>();
ILogger<BlogController> logger = mock.Object;

//or use this short equivalent 
logger = Mock.Of<ILogger<BlogController>>()

var controller = new BlogController(logger);

您可能需要安装 Microsoft.Extensions.Logging.Abstractions 包才能使用 ILogger.

You probably will need to install Microsoft.Extensions.Logging.Abstractions package to use ILogger<T>.

此外,您可以创建一个真正的记录器:

Moreover you can create a real logger:

var serviceProvider = new ServiceCollection()
    .AddLogging()
    .BuildServiceProvider();

var factory = serviceProvider.GetService<ILoggerFactory>();

var logger = factory.CreateLogger<BlogController>();