c# nUnit,日志模拟验证在代码中多次调用的地方不起作用
我正在从事 .NET CORE 3.1 nUnit 测试并尝试验证日志。我注意到,单次调用的日志确实可以识别并工作,并且如果相同的登录循环(例如记录不存在时的 log.logDebug)不适用于验证代码。
log 是 ILogger 模拟
类
log.LogDebug("No files discovered in testing....");
Test的实例
_loggerMoq.Verify(
x => x.Log(
LogLevel.Debug,
It.IsAny<EventId>(),
It.Is<It.IsAnyType>((o, t) => string.Equals("No files discovered in testing....", o.ToString(), StringComparison.InvariantCultureIgnoreCase)),
It.IsAny<Exception>(),
It.IsAny<Func<It.IsAnyType, Exception, string>>()),
Times.Once);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须将
It.IsAny>()),
更改为(Func)It.IsAny< ;object>()),
不确定为什么会这样,这是 Moq 库中的一个已知错误。
You have to change
It.IsAny<Func<It.IsAnyType, Exception, string>>()),
to(Func<It.IsAnyType, Exception, string>)It.IsAny<object>()),
Not sure why this works, it is a known bug in the Moq library.