【发布时间】:2018-04-26 08:01:31
【问题描述】:
我正在编写我的单元测试,我们有方法通过 RuleSet 名称调用手动验证。
我无法模拟我的 IValidator<RequestObj>.ValidateAsync() 方法。
我使用的示例模拟语句
mockValidator.Setup(x => x.ValidateAsync(It.IsAny<SampleRequest>(), It.IsAny<CancellationToken>(), It.IsAny<IValidatorSelector>(), It.IsAny<string>()))
.ReturnsAsync(new ValidationResult());
我收到以下错误
扩展方法的设置无效:x => x.ValidateAsync(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny()) 在 Moq.Mock.ThrowIfSetupExpressionInvolvesUnsupportedMember(表达式 设置,MethodInfo 方法)
请告诉我正确的方法。
【问题讨论】:
-
“请告诉我正确的方法” - 也许不要使用模拟或至少任何如此复杂的测试代码。 如何测试测试代码?
-
是的,你不需要模拟,但如果你的验证很复杂,它很方便。
标签: c# asp.net .net asp.net-mvc fluentvalidation