犀牛嘲笑
本文关键字:犀牛 | 更新日期: 2023-09-27 18:34:19
我想知道Rhino-Mocks如何找出我要存根的方法。下面的示例GetUserByName
存根方法:
var stubUserRepository = MockRepository.GenerateStub<IUserRepository>();
stubUserRepository.Stub(x => x.GetUserByName("ayende")).Return(theUserObject);
在下面的示例中,我只是将委托转发到框架。
我认为它正在使用方法签名。我说的对吗?
是使用反射吗?如果是,如何?
我可以在哪里寻找它?它是如何工作的?
我正在使用 C# 和当下。我想知道背后的概念和 C# 应用的东西。
Stub
调用设置可选的Expect
调用。传递给Stub
的函数(在本例中为 x => x.GetUserByName("ayende")
)实际上是针对模拟对象(这是一个城堡动态代理对象)执行的。调用被截获并记录在MockRepository
中,及其参数作为期望。IMethodOptions<>
对象从保存的有关调用的数据生成并返回,随后调用Return(theUserObject)
。
你可以使用像dotPeek这样的东西来更详细地反汇编和检查Rhino.Mocks.dll相关代码在RhinoMocksExtensions.cs
,在Rhino.Mocks
命名空间中。
只是想在伟大的克里斯的答案中添加指向 Rhino Mock 源代码的链接