【问题标题】:How Rhino-Mocks mocks?Rhino-Mocks 如何模拟?
【发布时间】:2013-10-08 11:22:57
【问题描述】:

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

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

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

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

是否使用反射?如果是,怎么做?

我在哪里可以找到它?它是如何工作的?

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

【问题讨论】:

    标签: c# mocking rhino-mocks


    【解决方案1】:

    Stub 调用设置了一个可选的Expect 调用。传递给Stub(在本例中为x =&gt; x.GetUserByName("ayende"))的函数实际上是针对模拟对象(即Castle DynamicProxy 对象)执行的。呼叫被截获并记录在MockRepository 及其参数中,作为预期。一个IMethodOptions&lt;&gt; 对象是从保存的有关调用的数据中生成并返回的,随后会调用Return(theUserObject)

    您可以使用dotPeek 之类的东西来更详细地反汇编和检查Rhino.Mocks.dll;相关代码在RhinoMocksExtensions.cs 中,在Rhino.Mocks 命名空间中。

    【讨论】:

      【解决方案2】:

      只想添加到伟大的克里斯的答案the link to Rhino Mock source code

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-27
        • 1970-01-01
        • 1970-01-01
        • 2010-12-03
        相关资源
        最近更新 更多