首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Moq混乱- Setup()诉Setup<>()

Moq混乱- Setup()诉Setup<>()
EN

Stack Overflow用户
提问于 2011-07-20 19:35:40
回答 1查看 420关注 0票数 6

我有一个模拟是这样创建的:

代码语言:javascript
运行
复制
var mock = new Mock<IPacket>(MockBehavior.Strict);
mock.Setup(p => p.GetBytes()).Returns(new byte[] { }).Verifiable();

安装方法的intellisense表示:

“为调用void返回方法指定模拟类型上的设置。

但是模拟的方法p.GetBytes()不返回void,它返回一个字节数组。

或者,另一个安装方法被定义为Setup<>,我可以像这样创建我的模拟:

代码语言:javascript
运行
复制
var mock = new Mock<IPacket>(MockBehavior.Strict);
mock.Setup<byte[]>(p => p.GetBytes()).Returns(new byte[] { }).Verifiable();

此安装方法的intellisense声明:

“指定对返回方法的调用的模拟类型的设置。

无论我选择哪种方法,它都编译并测试OK。所以,我搞不懂我该怎么做。.Setup()和.Setup<>()之间有什么区别,我做得对吗?

我们可以说,Moq的文档有点缺乏。:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-20 19:38:15

编译器从传递给Setup()的lambda中推断出您想要调用泛型版本,因此它很高兴地为您推断出泛型参数。如果使用Reflector,您将看到第一个代码示例实际上是调用Setup<byte[]>()

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6767446

复制
相关文章

相似问题

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