首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C# Moq如何获取所有方法调用

C# Moq如何获取所有方法调用
EN

Stack Overflow用户
提问于 2017-12-10 00:33:30
回答 1查看 3.8K关注 0票数 7

我正在通过moq创建一个界面的模拟。

我的应用程序代码使用不同的输入组合调用我的mock的不同方法。当我使用错误的输入来验证()时,就会抛出一个异常,列出所有的方法调用。

我希望获得这些方法调用,执行一些清理,并以不同的格式显示给用户。是否有可能在调用verify之前获取所有方法调用?

示例代码:

代码语言:javascript
运行
复制
var mock = new Mock<ILoveThisFramework>();


  mock.Setup(framework => framework.DownloadExists("2.0.0.0"))
      .Returns(true);

  // Hand mock.Object as a collaborator and exercise it, 
  // like calling methods on it...
  ILoveThisFramework lovable = mock.Object;
  bool download = lovable.DownloadExists("2.0.0.0");

  // Verify that the given method was indeed called with the expected value at most once

// it will throw exception which will include method invocations. I want to get method invocations out and reformat them. 

  mock.Verify(framework => framework.DownloadExists("3.0.0.0"), Times.AtMostOnce());
EN

回答 1

Stack Overflow用户

发布于 2017-12-10 19:07:25

好的,如果你想reformat他们,做一些类似这样的事情

代码语言:javascript
运行
复制
var tags = new List<string>();
var mock = new Mock<ILoveThisFramework>();

  mock.Setup(framework => framework.DownloadExists(It.IsAny<string>()))
     .Returns((string tag) => {
       tags.Add(tag);
       return true;
    });

Assert.IsTrue(tags.Contains("3.0.0.0"), $"3.0.0.0 never passed to `DownloadExists(), only values passed {string.Join(',', tags)}");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47730682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档