TryValidateProperty всегда возвращает true в тестовой библиотеке - PullRequest
0 голосов
/ 05 июля 2018

У меня есть класс, определенный в библиотеке классов, например:

Classlib1 - Клиент

public class client{
   [Required]
   public string Firstname {get; set;}
   ...
   [RegularExpression(@"^(?:\d{9}|\d{3}-\d{2}-\d{4}|)$")]
   public string SocialSecurityNumber {get; set;}
}

У меня также есть библиотека Test, в которой я хочу убедиться, что моя проверка атрибута RegularExpression работает.

Testlib

[TestMethod]
public void ThrowAnErrorOnSSNWithTooManyDigits(){
    var client = new Client(){
       Firstname = "Mickey",
       ...
       SocialSecurityNumber = "1234567890123"
    };
    var vResults = new List<ValidationResult>();
    var context = new ValidationContext(client){MemberName = "SocialSecurityNumber"};
    var result = Validator.TryValidateProperty(client.SocialSecurityNumber, context, vResults);

    Assert.IsFalse(result)
}

Однако, мое утверждение всегда терпит неудачу, потому что результат всегда равен true. Я попытался изменить свой валидатор, чтобы проверить требуемое имя, а не SocialSecurityNumber, думая, что мой RegEx не совсем правильный - однако, он также возвращает true - даже если я установил Firstname = ""

Что мне нужно сделать, чтобы Validator работал в моей тестовой библиотеки классов?

1 Ответ

0 голосов
/ 06 июля 2018

Итак, еще раз прочесывая свой проект, я понял, что тестовый проект, который я добавил, фактически нацелен на .Net4.6, в то время как остальные мои проекты нацелены на .Net Core 2.0.

Я добавил новый проект .NetCore Test и скопировал туда все свои тесты, и все заработало как положено.

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