我想知道犀牛如何找到我想存根的方法。下面的示例是方法GetUserByName的存根
var stubUserRepository = MockRepository.GenerateStub<IUserRepository>();
stubUserRepository.Stub(x => x.GetUserByName("ayende")).Return(theUserObject);在下面的示例中,我只是向Framework转发了一个委托。
我认为这是在使用方法签名。我说的对吗?
它是用反射的吗?如果是,怎么做?
在哪里我能找到它?它是如何工作的?
我正在使用C#和时间。我想知道背后的概念和C#应用的东西。
发布于 2013-10-08 13:20:00
Stub调用设置一个可选的Expect调用。传递给Stub的函数(在本例中为x => x.GetUserByName("ayende"))实际上是针对模拟对象(即城堡DynamicProxy对象)执行的。该呼叫将被截获并记录在MockRepository中,并带有其参数,作为期望。IMethodOptions<>对象是从保存的有关调用的数据中生成的,并返回数据,然后调用Return(theUserObject)。
您可以使用类似dotPeek的东西来更详细地分解和检查Rhino.Mocks.dll;相关代码在RhinoMocksExtensions.cs中,在Rhino.Mocks名称空间中。
发布于 2013-10-09 19:12:42
我只想加入伟大的克里斯的答案,Rhino Mock源代码链接
https://stackoverflow.com/questions/19246396
复制相似问题