首页 > 解决方案 > 设置中的 .NET Core Moq Params 数组

问题描述

我正在尝试使用 Moq 来模拟来自使用 params 关键字和 int 数组的方法的响应

public interface IValidationHelper
{
    Task<bool> ValidateParents(params int?[] parents);
}

我发现自己必须以两种方式对其进行模拟才能使其正确模拟。首先,使用单个参数,其次,使用两个参数。有没有办法在设置中的 It.IsAny 中指定参数之类的东西?

private void MockValidateParents(bool valid = true)
{
    _validationHelper.Setup(x => x.ValidateParents(
        It.IsAny<int>()
    )).ReturnsAsync(valid);

    _validationHelper.Setup(x => x.ValidateParents(
        It.IsAny<int>(),
        It.IsAny<int>()
    )).ReturnsAsync(valid);
}

标签: c#asp.net-coremoq

解决方案


我认为您需要告诉模拟它可以采用的任何数组:

_validationHelper.Setup(x => x.ValidateParents(
    It.IsAny<int?[]>()
)).ReturnsAsync(valid);

而不是告诉它所有的单一输入。


推荐阅读