Исключение броска установки Moq - PullRequest
2 голосов
/ 08 февраля 2020

Я настраиваю Moq как:

mockCommand.Setup(foo => foo.Post<Foo, Response>(It.IsAny<Foo>()))
    .Returns((Foo m) =>
    {
        if (m . . . .)
        {
            return new <Response>()
            {
                <...>
            };
        }
        else
        {
            return new <Response>()
            {
                <...>
            };
        }
    });

Но я получаю исключение:

System.ArgumentException: Неверный обратный вызов. Метод установки с 2 параметрами не может вызвать обратный вызов с другим количеством параметров (1).

Метод generi c определяется как:

TResponse Post<TRequest, TResponse>(TRequest request, params string[] query)

Единственное, о чем я могу думать, это то, что, так как я условно возвращаю ответ, это каким-то образом сбивает с толку Moq, поэтому оно выдает исключение. Идеи?

1 Ответ

1 голос
/ 08 февраля 2020

Исключением является указание на то, что параметры были опущены в настройке и делегате обратного вызова Returns.

Включите все параметры для члена, подвергаемого насмешке

mockCommand
    .Setup(foo => foo.Post<Foo, Response>(It.IsAny<Foo>(), It.IsAny<string[]>()))
    .Returns((Foo m, string[] q) => {
        //...omitted for brevity
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...