Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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中带原点参数的FakeiTasy返回Func#_C#_Fakeiteasy - Fatal编程技术网

C中带原点参数的FakeiTasy返回Func#

C中带原点参数的FakeiTasy返回Func#,c#,fakeiteasy,C#,Fakeiteasy,我尝试使用FakeiTasy运行一些测试,我的目的是用一个方法替换另一个方法以获得不同的返回值。对我来说,棘手的事情是将origin调用参数重定向到replace方法。调用可以正常工作,但不会更改结果。(我可以做错什么吗) 这是我的想法 Func<string, string> func = delegate (string request) { return $"Replaced {request}"; }; var service = A.Fake<

我尝试使用FakeiTasy运行一些测试,我的目的是用一个方法替换另一个方法以获得不同的返回值。对我来说,棘手的事情是将origin调用参数重定向到replace方法。调用可以正常工作,但不会更改结果。(我可以做错什么吗)

这是我的想法

Func<string, string> func = delegate (string request)
{
   return $"Replaced {request}";
};
var service = A.Fake<MyService>();

A.CallTo(() => service.DoAction(A<string>._)).Returns<string>(func(A<string>._));
// func(A<string>._) cause an exception, i need to have arg from DoAction here

// following line works fine but dont change return
A.CallTo(() => service.DoAction(A<string>._)).Invokes((string request) => func(request));

// result is empty here but should have "Replaced Test"
var result = service.DoAction("Test");
Func=delegate(字符串请求)
{
返回$“已替换{request}”;
};
var service=A.Fake();
A.CallTo(()=>service.DoAction(A.))).Returns(func(A.));
//func(A.。)导致一个异常,我需要这里有来自DoAction的arg
//下面的行可以正常工作,但不改变返回
调用((字符串请求)=>func(请求));
//此处结果为空,但应已“替换测试”
var结果=service.DoAction(“测试”);

有人能给我指一下正确的方向吗?

我想你在找我

A.CallTo(() => service.DoAction(A<string>._)) 
    .ReturnsLazily((string request) => func(request));
A.CallTo(()=>service.DoAction(A.)
.returnslazly((字符串请求)=>func(请求));
您可以在文档主题中看到更多关于这方面的信息