gpt4 book ai didi

asp.net-mvc-3 - 如何在 MVC 3 中测试自定义 ValidationAttribute 类

转载 作者:行者123 更新时间:2023-12-04 16:20:12 25 4
gpt4 key购买 nike

我有一个自定义验证器属性,我正在尝试对其进行单元测试。在我的单元测试中,我正在执行以下操作。

var testModel = new TestModel();
var testContext = new ValidationContext(testModel, null, null);
var attribute = new MyCustomAttribute();

attribute.Validate(testModel, testContext);

当调用 attribute.Validate 时,它正确地调用了我的 IsValid 方法,但是 attribute.Validate 显然是 void不返回任何东西。非常感谢任何有关如何连接到 ValidationResult 的想法。


在对 ValidationAttribute.Validate 方法做了一些阅读后,它看起来如果验证失败,它将抛出一个 ValidationException,所以这种回答我的问题。

最佳答案

您可以像 MVC 使用 ModelValidator 一样调用验证。像这样的东西(你在这里的里程可能会有所不同,不记得我头脑中的所有调用,稍后会尝试用工作代码替换):

var modelMetadata = ModelMetadataProviders.Current.GetMetadataForType(() => model, model.GetType());

var validator = ModelValidator.GetModelValidator(modelMetadata, base.ControllerContext);

var result = validator.Validate(instance)

关于asp.net-mvc-3 - 如何在 MVC 3 中测试自定义 ValidationAttribute 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7751216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com