设置中的 .NET Core Moq Params 数组

.NET Core Moq Params array in setup

我正在尝试使用 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);
}

我认为你需要告诉 mock 它可以是任何数组:

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

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