FakeItEasy Returning Func with origin arguments 在 C# 中
FakeItEasy Returning Func with origin arguments in C#
我尝试 运行 使用 FakeItEasy 进行一些测试,我的目的是用一种方法替换另一种方法以获得不同的 return 值。对我来说棘手的事情是将 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");
有人能给我指出正确的方向吗?
我想你在找
A.CallTo(() => service.DoAction(A<string>._))
.ReturnsLazily((string request) => func(request));
您可以在文档的 Return Values Calculated at Call Time 主题中看到更多相关信息。
我尝试 运行 使用 FakeItEasy 进行一些测试,我的目的是用一种方法替换另一种方法以获得不同的 return 值。对我来说棘手的事情是将 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");
有人能给我指出正确的方向吗?
我想你在找
A.CallTo(() => service.DoAction(A<string>._))
.ReturnsLazily((string request) => func(request));
您可以在文档的 Return Values Calculated at Call Time 主题中看到更多相关信息。