简体   繁体   English

设置方法以返回作为参数传递的函数的返回值

[英]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.

相关问题 如何在Main()中使用方法(其参数已由ref传递)的返回值 - How can I use a method's (whose argument has been passed by ref) return value in Main() 如何模拟设置方法以返回不同的值 - How to mock setup a method to return different value Moq可以返回传递给在具有void返回类型的Mock上调用的Setup方法的实际对象实例吗? - Can Moq return the real object instance passed into a Setup method called on a Mock with a void return type? 如果接口中有可选参数,则Moq安装程序将返回但不返回值 - Moq Setup returns but doesnt return value if Optional Argument is in interface 方法的返回值正在修改作为方法参数传递的对象 - Return value of method is modifying an object passed as a method parameter 返回值的方法不能传递给异常处理程序 - A Method which return a value cannot be passed to exception handler 如何从 Roslyn 的另一个方法中作为参数传递的方法获取返回类型? - How can I obtain return type from method passed as an argument in another method with Roslyn? 如何为返回值取决于输入的相同方法设置最小起订量? - How to setup Moq for the same method where return value depends on input? 通用方法的最小起订量设置不返回指定值 - Moq setup of generic method does not return specified value 如何使用Mock设置从void方法返回值 - How to return a value from a void method using Mock setup
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM