c# - 你如何模拟 ILogger LogInformation
问题描述
我有一个接收 ILogger 的类,我想模拟 LogInformation 调用,但这是一个扩展方法。如何为此进行适当的设置调用?
解决方案
如果您使用的是 Moq >= 4.13,这是一种模拟方法ILogger
:
logger.Verify(x => x.Log(
It.IsAny<LogLevel>(),
It.IsAny<EventId>(),
It.IsAny<It.IsAnyType>(),
It.IsAny<Exception>(),
(Func<It.IsAnyType, Exception, string>)It.IsAny<object>()));
您可以将It.IsAny<LogLevel>()
、It.IsAny<EventId>()
和It.IsAny<Exception>()
stub 更改为更具体,但 usingIt.IsAnyType
是必要的,因为FormattedLogValues
is now internal
。
推荐阅读
- wordpress - 密码的最小字符数,Wordpress
- java - 如何将 Hibernate 缓存与外部更改同步
- macos - 如何使用快速操作打印指定文本
- azure-marketplace - Azure Stack Hub 市场 - 自定义操作系统映像
- amazon-web-services - 如何在本地 Spring Boot 应用程序中使用 AWS elasticache for redis?
- mongodb - MongoDB:如何在不中断并发查询的情况下将一大块数据从一个集合移动到另一个集合?
- android - android 10 kotlin 改造的图像上传问题
- ansible - 我该如何解决这个 ansible playbook 错误?
- css - CSS 特异性和级联
- android - 发布版华为AppGallery 6003错误码