[英]Setup a method to return the return value of a function passed as an argument
I have: 我有:
public T MethodNameHere<T>(Func<T> func)
{
return func.Invoke();
}
How do I setup a mock for that method. 如何为该方法设置模拟。 Something along the lines of:
类似于以下内容:
this.mockService.Setup(a => a.MethodNameHere(It.IsAny<Func<Guid>>())).Returns(...?...);
How do I Returns
whatever the Func
has returned? 如何
Returns
无论Func
返回?
Get the passed argument in the Returns
delegate and invoke that 在
Returns
委托中获取传递的参数,然后调用该参数
this.mockService
.Setup(_ => _.MethodNameHere(It.IsAny<Func<Guid>>()))
.Returns((Func<Guid> func) => func());
Or 要么
this.mockService
.Setup(_ => _.MethodNameHere(It.IsAny<Func<Guid>>()))
.Returns((Func<Guid> func) => func.Invoke());
Reference 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.