繁体   English   中英

Rhino-Mocks如何嘲笑?

[英]How Rhino-Mocks mocks?

我想知道Rhino-Mocks如何找出我想存根的方法。 下面的示例对方法GetUserByName存根GetUserByName

var stubUserRepository = MockRepository.GenerateStub<IUserRepository>();
stubUserRepository.Stub(x => x.GetUserByName("ayende")).Return(theUserObject);

在下面的示例中,我只是将委托转发给框架。

我认为它正在使用方法签名。 我对吗?

使用反射吗? 如果是,怎么办?

我在哪里可以找到它? 这个怎么运作?

我现在正在使用C#。 我想知道背后的概念和C#应用的内容。

Stub调用设置了可选的Expect调用。 传递给Stub的函数(在本例中为x => x.GetUserByName("ayende") )实际上是针对模拟对象(它是Castle DynamicProxy对象)执行的。 调用被拦截并记录在MockRepository ,并带有其参数,这是期望值。 从有关调用的已保存数据中生成一个IMethodOptions<>对象,然后将其Return(theUserObject)然后调用Return(theUserObject)

您可以使用诸如dotPeek之类的工具来更详细地分解和检查Rhino.Mocks.dll。 相关代码位于Rhino.Mocks命名空间的RhinoMocksExtensions.cs中。

只是想在Chris的回答中添加到Rhino Mock源代码的链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM