首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.NET Core2.2 Web API -现场验证修饰器不会在手动赋值时触发

.NET Core2.2 Web API -现场验证修饰器不会在手动赋值时触发
EN

Stack Overflow用户
提问于 2020-01-10 19:01:05
回答 1查看 13关注 0票数 0

我有一个模型类(简化如下):

代码语言:javascript
运行
复制
public class Person
{
    [JsonRequired]
    [RegularExpression(@"^[ -'A-Za-z]{2,30}$", ErrorMessage ="The field firstName must be between 2 and 30 characters and contain alpha characters only.")]
    [JsonProperty(PropertyName = "firstname")]
    public String Firstname { get; set; }

    [RegularExpression(@"^[ -'A-Za-z]{2,26}$", ErrorMessage = "The field middleName must be between 2 and 26 characters and contain alpha characters only.")]
    [JsonProperty(PropertyName = "middlename")]
    public string Middlename { get; set; }
}

当我从Postman启动API时,装饰器工作-并且返回错误。

我目前正在创建单元测试,并希望检查验证,但通过代码手动分配允许它通过例如

代码语言:javascript
运行
复制
Person testPerson = new Person();
testPerson.middlename = "Bob123";

因此,单元测试可以通过(也可以失败,这取决于您的观点!)

有没有一种简单的方法可以通过单元测试来检查这种类型的验证?

EN

回答 1

Stack Overflow用户

发布于 2020-01-10 19:26:38

好的。因此,下面是我所需要的:

代码语言:javascript
运行
复制
Person testPerson = new Person();
testPerson.middlename = "Bob123";

        var validationResults = new List<ValidationResult>();
        var context = new ValidationContext(testPerson);
        Validator.TryValidateObject(testPerson, context, validationResults, true);

查看"validationResults“会显示失败字段的特定错误消息-例如中间名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59680371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档