gpt4 book ai didi

c# - Rhino-Mocks 如何模拟?

转载 作者:行者123 更新时间:2023-11-30 22:13:14 25 4
gpt4 key购买 nike

我想知道 Rhino-Mocks 如何找到我想要 stub 的方法。下面的示例 stub 方法 GetUserByName:

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

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

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

是否使用了反射?如果是,如何?

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

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

最佳答案

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

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

关于c# - Rhino-Mocks 如何模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19246396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com