c# - FakeItEasy 在 C# 中返回具有原始参数的 Func
问题描述
我尝试使用 FakeItEasy 运行一些测试,我的目的是用另一种方法替换一种方法以获得不同的返回值。对我来说棘手的事情是将源调用参数重定向到替换方法。调用工作正常,但不改变结果。(我可以做错什么吗)
这是我想出的
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));
您可以在文档的“调用时计算的返回值”主题中了解更多信息。
推荐阅读
- java - 如何在 Spring Data MongoDB 中实现聚合查询?
- vagrant - 是否安装了 gvfs-trash?在原子
- java - spring 不会重新生成“redirect:/path”,返回一个简单的字符串
- bash - 如何计算平均响应时间 Bash 脚本
- continuous-integration - 如何从 GitLab CI 管道的工作发送电子邮件?
- sql - 转换 REST API 的答案
- c++ - 为什么我从 SIMD 内在函数中获得更大的相对加速与具有更大数组的标量?
- python - Python中的列表理解解决以下问题
- reactjs - 在 React 组件中调用内联函数 - React 测试库 + Jest
- c# - dotnet core -> 返回 jpg 图像的 base64 字符串时 web api 内容类型的最佳实践