什么是创建存根的工具?

时间:2009-01-21 18:28:53

标签: .net testing stub

继我上一期的问题“What is a "Stub"之后,我真的很想今晚坐下来,更多地创建存根文件。

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

奖励积分:)

您是否也可以链接到任何有关入门的好教程?

非常感谢男女老少,感谢:)

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

5 个答案:

答案 0 :(得分:4)

简单地说,Rhino.Mocks。是的,“Mocks不是Stubs”,但Rhino.Mocks同时做到了。在围绕Rhino.Mocks缠绕我的大脑之前,我手工编写了我自己的存根。再也不会了。

对不起,我没有获得奖励积分。 Ayende.com,获得Rhino.Mocks的地方,有很好的在线文档,还有一个充满问题的论坛。作者实际上非常善于回应和回答。我不觉得学习如何使用它有一个很好的“捷径”;对于这一点,我认为这是通过实践和/或反复试验得到的。

(在重读上述内容时,我并不是说它听起来像RTFM,即使它可能会遇到这种情况。)

答案 1 :(得分:1)

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

我是AAA语法的粉丝所以我可能会为我的下一个项目切换到Moq,它比rhino mocks更新一些。它从犀牛嘲讽中偷走了一些好主意但没有多年来收集过的rhinomocks。如果你是嘲笑和捣蛋的新手,我肯定会调查它。

答案 2 :(得分:1)

继续我对JMD's Answer的评论

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

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

答案 3 :(得分:1)

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

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

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

答案 4 :(得分:1)

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