Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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# FakeiTesy-在调用拦截期间模拟返回值_C#_.net Core_Fakeiteasy - Fatal编程技术网

C# FakeiTesy-在调用拦截期间模拟返回值

C# FakeiTesy-在调用拦截期间模拟返回值,c#,.net-core,fakeiteasy,C#,.net Core,Fakeiteasy,你能帮我了解一下假货的高级用法吗。 我得到了一个方法(假设它名为“Insert”),它将一个参数作为参数。此参数包含大量数据。 我想将此参数作为“Insert”的结果返回 object.Insert(A.) .Invokes(obj=> { var p=obj.GetArgument(0); ---在此处将p设置为返回值-- } 差不多吧。 有可能吗 我试过了 A.CallTo(() => obj.Insert(A<T>._)).ReturnsLazily((o) =>

你能帮我了解一下假货的高级用法吗。 我得到了一个方法(假设它名为“Insert”),它将一个参数作为参数。此参数包含大量数据。 我想将此参数作为“Insert”的结果返回

object.Insert(A.)
.Invokes(obj=>
{
var p=obj.GetArgument(0);
---在此处将p设置为返回值--
}
差不多吧。 有可能吗

我试过了

A.CallTo(() => obj.Insert(A<T>._)).ReturnsLazily((o) => o.GetArgument<T>(0);
A.CallTo(()=>obj.Insert(A.))).returnslazilly((o)=>o.GetArgument(0);
它也不工作。在调试中,它并没有停止。可能根本没有调用它


提前谢谢。

正如Alexander Petrov所说,这应该可以工作,但您的代码太过简洁,无法确定。我将复制我在Fakeetisy gitter聊天中键入给您的答案:

您的代码有点简洁,因此我必须猜测一些细节。最好包含更多内容,并/或准确描述发生的情况,但您的第二种方法听起来不错,尽管它比需要的要复杂一些。我自己会编写此代码:

A.CallTo(()=>fake.Insert(A.u41;).ReturnsLazily((typeof p)=>p));
其中,
TypeOfP
是参数的类型。这正是中描述的方法

如果这对您不起作用,我要做的第一件事就是确保您配置了正确的方法。您在参数列表中使用了正确的类型吗?是否存在
Insert
重载,该重载占用了您在生产代码中实际调用的更多(或更少)参数,因此单参数版本(需要
TypeOfP
)实际上没有被调用?有时这很容易直观地检查,有时这有助于调试代码


如果您能够提供更多的测试和生产代码,或者至少提供方法签名,如果您仍然被困,我们可能会提供帮助。

应该可以。显示更多代码。可以。非常感谢您提供详细的答案。
A.CallTo(() => obj.Insert(A<T>._)).ReturnsLazily((o) => o.GetArgument<T>(0);