簡體   English   中英

設置方法以返回作為參數傳遞的函數的返回值

[英]Setup a method to return the return value of a function passed as an argument

我有:

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

如何為該方法設置模擬。 類似於以下內容:

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

如何Returns無論Func返回?

Returns委托中獲取傳遞的參數,然后調用該參數

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());

參考起訂量快速入門

// 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM