gpt4 book ai didi

c# - 设置一个方法来返回作为参数传递的函数的返回值

转载 作者:行者123 更新时间:2023-11-30 21:31:05 25 4
gpt4 key购买 nike

我有:

public T MethodNameHere<T>(Func<T> func)
{
return func.Invoke();
}

如何为该方法设置模拟。类似的东西:

this.mockService.Setup(a => a.MethodNameHere(It.IsAny<Func<Guid>>())).Returns(...?...);

无论 Func 返回什么,我如何返回

最佳答案

Returns 委托(delegate)中获取传递的参数并调用它

this.mockService
.Setup(_ => _.MethodNameHere(It.IsAny<Func<Guid>>()))
.Returns((Func<Guid> func) => func());

或者

this.mockService
.Setup(_ => _.MethodNameHere(It.IsAny<Func<Guid>>()))
.Returns((Func<Guid> func) => func.Invoke());

引用 Moq Quickstart

// access invocation arguments when returning a value
mock.Setup(x => x.DoSomethingStringy(It.IsAny<string>()))
.Returns((string s) => s.ToLower());
// Multiple parameters overloads available

关于c# - 设置一个方法来返回作为参数传递的函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53750934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com