FakeItEasy在C#中使用原始参数返回Func

问题描述

我尝试使用FakeItEasy运行一些测试,我的目的是将一个方法替换为另一个方法以获取不同的返回值。对我而言,棘手的事情是将原始调用参数重定向到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");

有人可以指出我正确的方向吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)