设置中的 .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);
而不是告诉它所有的单一输入。
我正在尝试使用 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);
而不是告诉它所有的单一输入。