Установите метод для возврата возвращаемого значения функции, переданной в качестве аргумента - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть:

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

Как мне настроить макет для этого метода.Что-то вроде:

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

Как мне Returns, что бы не вернул Func?

1 Ответ

0 голосов
/ 12 декабря 2018

Получите переданный аргумент в делегате 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());

Ссылка Быстрый запуск Moq

// access invocation arguments when returning a value
mock.Setup(x => x.DoSomethingStringy(It.IsAny<string>()))
        .Returns((string s) => s.ToLower());
// Multiple parameters overloads available
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...