Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 犀牛如何嘲弄人?_C#_Mocking_Rhino Mocks - Fatal编程技术网

C# 犀牛如何嘲弄人?

C# 犀牛如何嘲弄人?,c#,mocking,rhino-mocks,C#,Mocking,Rhino Mocks,我想知道Rhino Mocks是如何发现我想要存根的方法的。下面的示例将方法GetUserByName: var stubUserRepository = MockRepository.GenerateStub<IUserRepository>(); stubUserRepository.Stub(x => x.GetUserByName("ayende")).Return(theUserObject); var stubUserRepository=MockReposito

我想知道Rhino Mocks是如何发现我想要存根的方法的。下面的示例将方法
GetUserByName

var stubUserRepository = MockRepository.GenerateStub<IUserRepository>();
stubUserRepository.Stub(x => x.GetUserByName("ayende")).Return(theUserObject);
var stubUserRepository=MockRepository.GenerateStub();
stubUserRepository.Stub(x=>x.GetUserByName(“ayende”)).Return(theUserObject);
在下面的示例中,我只是将一个委托转发给框架

我认为这是使用方法签名。我说得对吗

它使用反射吗?如果是,如何进行

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

我用的是C#和瞬间。
我想知道背后的概念和C#应用的东西。

调用
存根
设置了一个可选的
Expect
调用。传递给
Stub
x=>x.GetUserByName(“ayende”)
,在本例中)的函数实际上是针对模拟对象(对象)执行的。该调用被截获并记录在
MockRepository
中,其中包含其参数。根据保存的有关调用的数据生成一个
IMethodOptions
对象并返回,随后调用该对象


您可以使用类似的工具来更详细地分解和检查Rhino.Mocks.dll;相关代码在
RhinoMocksExtensions.cs
中,在
Rhino.Mocks
名称空间中。

只想添加到伟大的Chris的答案中