【问题标题】:Moq setup throw exception起订量设置抛出异常
【发布时间】:2020-02-08 00:33:09
【问题描述】:

我正在设置起订量:

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) 的回调。

泛型方法定义为:

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

我唯一能想到的是,不知何故,因为我有条件地返回响应,它以某种方式混淆了 Moq,因此它引发了异常。想法?

【问题讨论】:

    标签: c# moq


    【解决方案1】:

    异常指出设置和Returns回调委托中省略了参数。

    包括被模拟成员的所有参数

    mockCommand
        .Setup(foo => foo.Post<Foo, Response>(It.IsAny<Foo>(), It.IsAny<string[]>()))
        .Returns((Foo m, string[] q) => {
            //...omitted for brevity
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多