3

继我的上一个问题“什么是“存根”之后,我真的很想今晚坐下来,更多地尝试创建存根对象。

创建存根对象的首选工具是什么?

并获得奖励积分:)

您还可以链接到任何好的教程以开始使用它们吗?

非常感谢男孩和女孩,感谢:)

仅供参考 - 我正在使用 .NET(2.0 @ Work,3.5 @ Home)

4

5 回答 5

4

简单地说,Rhino.Mocks。是的,“Mocks 不是 Stubs”,但 Rhino.Mocks 两者兼而有之。在将我的大脑包裹在 Rhino.Mocks 上之前,我手动编写了自己的存根。再也不。

抱歉,我没有获得奖励积分。Ayende.com 是获取 Rhino.Mocks 的地方,有不错的在线文档和一个充满问题的论坛。作者其实也很擅长回应和回答。我觉得学习如何使用它没有什么好的“捷径”。为此,我认为最好通过实践和/或反复试验来学习。

(在重读上述内容时,我并不是说它听起来像 RTFM,即使它可能会以这种方式出现。)

于 2009-01-21T18:35:15.093 回答
1

我已经使用 Rhinomocks 有一段时间了。它的问题在于它允许各种不同的策略和语法来创建模拟和存根。对象模型越来越挤满了各种扩展方法、函数和对象,这些扩展方法、函数和对象仅在某些上下文中有用。这使得学习变得更加困难。

我是 AAA 语法的粉丝,所以我可能会在下一个项目中切换到 Moq,它比 rhino mocks 更新一些。它从 rhinomocks 中窃取了一些好主意,但没有 rhinomocks 多年来收集的旧内容。如果您不熟悉嘲笑和存根,我当然会研究一下。

于 2009-01-21T18:47:39.390 回答
1

继我对JMD 回答的评论之后..

我一直在检查 Rhino Mocks,我之前听说它也有存根功能,所以看看它是如何工作的会很有意义。

我没有机会用这些生成很多代码,但这里有一些我发现的有用链接(到目前为止):

于 2009-01-21T18:48:10.963 回答
1

RhinoMocks 很棒而且非常完整,但我发现moq更易于学习和使用。

var mock = new Mock<IFoo>();
mock.Expect(foo => foo.Execute("ping")).Returns(true);

我也使用 RhinoMocks,它很棒,但我想我发现 moq 的 API 非常容易发现,而且(简短的)文档非常有用。当Phil Haack将 RhinoMocks 与Moq进行比较时,他并没有意识到 RhinoMocks 的所有功能,Moq 是关于可发现性的声明。

于 2009-01-21T20:24:49.177 回答
1

我们为 Pex 开发了一个存根框架,您可以在http://research.microsoft.com/stubs上阅读(和了解)它。这个框架在很多方面与 Rhino/Moq 不同:它“只是”用于生成存根和源代码。

于 2009-04-26T07:48:06.100 回答