c# - 最小起订量记录器和验证调用失败

标签 c# unit-testing mocking moq verify

我为我的记录器创建了一个模拟项,这样我就可以验证对它进行了哪些调用;像这样:

  mock_log.Setup(l => l.InfoFormat(It.IsAny<string>(), It.IsAny<object[]>()));
  mock_log.Verify(m => m.InfoFormat("1 file(s) found that match criteria."), Times.Exactly(1));

我已经调试了代码,我知道这些日志在代码中肯定会被攻击,因此应该记录这些日志。这是记录该消息的代码

  _log.InfoFormat("{0} file(s) found that match criteria.", files.Count);

并且只有 1 个文件被传递下来。

那么为什么当我验证一个调用时它失败了? 任何建议。

最佳答案

发现是因为字符串封装没打通。将验证更改为

 mock_log.Verify(m => m.InfoFormat("{0} file(s) found on Ftp server.", 4), Times.Exactly(1));

关于c# - 最小起订量记录器和验证调用失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49424881/

相关文章:

java - 在java中测试如何检查接口(interface)的方法是否被调用?

vb.net - 将 linq.Xelement 转换为 XMLTextReader 的流

python - 如何在 Python 中模拟 cx_Oracle 游标

c# - 公开引用的类型(类)而不需要额外的引用

c# - IDictionary<TKey, TValue> 替换值的实现和契约

c# - 在 IServiceCollection 扩展中获取服务

c# - 类型转换和类型问题

java - 在 JUnit 中继承一个类 - 这是一个很好的做法吗?

c++ - 使用升压测试和不应编译的测试的最佳实践

node.js - 使用 fetch-mock 模拟 zip 响应