首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >基于调用次数设置函数返回的Moq

基于调用次数设置函数返回的Moq
EN

Stack Overflow用户
提问于 2013-01-17 05:40:54
回答 2查看 11.3K关注 0票数 26

我需要模拟一个接口来调用MSMQ,有没有一种方法可以用Moq来模拟真实的MSMQ场景,队列中有10个消息,我调用模拟函数10次,我可以得到一个预定义的对象,第11次我应该得到一个不同的返回值(例如null)?

EN

回答 2

Stack Overflow用户

发布于 2013-01-17 05:48:06

对于这样的场景,我有时会使用一个简单的计数器:

代码语言:javascript
复制
int callCounter = 0;
var mock = new Mock<IWhatever>();
mock.Setup(a => a.SomeMethod())
    .Returns(() => 
    {
       if (callCounter++ < 10)
       {
           // do something
       }
       else
       {
           // do something else
       }
    });
票数 16
EN

Stack Overflow用户

发布于 2014-04-01 03:56:57

您还可以设置一个单独的函数来执行此操作。如果需要,您甚至可以向函数传递一个参数:

代码语言:javascript
复制
_serviceMock.Setup(x => x.SomeMethod(It.IsAny<String>())).Returns((String param) => getTimesCalled(param));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14368380

复制
相关文章

相似问题

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