Validation .NET Core 2.2 Web API-手动分配时未启动现场验证装饰程序

Validation .NET Core 2.2 Web API-手动分配时未启动现场验证装饰程序,validation,model,Validation,Model,我有一个模型课(简化如下): 当我从Postman启动API时,装饰程序就会工作,并且返回错误 我目前正在创建单元测试,并希望检查验证,但通过代码手动分配允许它通过,例如 Person testPerson = new Person(); testPerson.middlename = "Bob123"; 因此,单元测试通过(或失败取决于您的观点!) 是否有一种简单的方法通过单元测试来检查这种类型的验证?好的。下面是我需要的: Person testPerson = new Person();

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

当我从Postman启动API时,装饰程序就会工作,并且返回错误

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

Person testPerson = new Person();
testPerson.middlename = "Bob123";
因此,单元测试通过(或失败取决于您的观点!)


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

好的。下面是我需要的:

Person testPerson = new Person();
testPerson.middlename = "Bob123";

        var validationResults = new List<ValidationResult>();
        var context = new ValidationContext(testPerson);
        Validator.TryValidateObject(testPerson, context, validationResults, true);
Person testPerson=newperson();
testPerson.middlename=“Bob123”;
var validationResults=新列表();
var context=新的ValidationContext(testPerson);
TryValidateObject(testPerson,context,validationResults,true);
查看“validationResults”会发现失败字段的特定错误消息,例如middlename

Person testPerson = new Person();
testPerson.middlename = "Bob123";

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