. NET Core 2.2 Web API - валидация полей Декораторы не запускаются при ручном назначении - PullRequest
0 голосов
/ 10 января 2020

У меня есть класс модели (упрощенно ниже):

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; }
}

Декораторы работают, когда я запускаю API из Postman - и возвращается ошибка.

В настоящее время я создаю UNIT Проверяет и хочет проверить валидацию, но ручное назначение через код позволяет, например, через

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

, и поэтому модульное тестирование проходит (или не проходит в зависимости от вашей точки зрения!)

Есть ли простой способ через модульные тесты для проверки этого типа проверки?

1 Ответ

0 голосов
/ 10 января 2020

OK. Таким образом, нижеследующее делает то, что мне нужно:

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

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

И, глядя на «validationResults», выявляет конкретное сообщение об ошибке поля, которое завершается неудачей - например, middlename.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...