ОБНОВЛЕНО: когда я выполняю проект модульного теста, а затем он возвращает Был необработан Этот результат теста также содержал внутреннее исключение вместо"Ошибка Assert.IsTrue. Поле описания равнотребуется."Результат похож на (0 Pass, 1 FAIL, 1 Total), но мы вообще не получаем никаких исключений, если я отлаживаю с помощью F11
[TestMethod]
[Asynchronous]
[Description("Determines whether the selected or single property is valide using the validation context or validate single properties.")]
public void ValidateSigleWithDataAnnotation()
{
LookupsServices lookupsservices = new LookupsServices();
Lookups lookups = new Lookups() { Description = "", LookupReference = 2, DisplayOrder = 50};
lookupsservices.Lookups.Add(lookups);
//THIS IS NOT WORKING
string message = ValidateProperties.ValidateSingle(lookups, "Description");
Assert.IsTrue(message.Equals(""), message);
//THIS IS WORKING
var results = new List<ValidationResult>();
Validator.TryValidateProperty(lookups.Description , new ValidationContext(lookups, null, null) { MemberName = "Description" }, results);
Assert.IsTrue(results.Count == 0, results[0].ToString());
}
Ниже приведена общая функция для проверки отдельного свойства
public static string ValidateSingle<T>(T t, string PeropertyName) where T : class
{
string errorMessage = "";
var ValidationMessages = new List<ValidationResult>();
bool ValidationResult = Validator.TryValidateProperty(typeof(T).GetProperty(PeropertyName).Name, new ValidationContext(t, null, null) { MemberName = PeropertyName} , ValidationMessages);
if (!ValidationResult) errorMessage += string.Format("\n{0}", ValidationMessages[0]);
return errorMessage;
}
Ниже приведена модель, где требуется идентификатор поля Описание
public class Lookups
{
public Lookups() { }
[Key]
public virtual int LookupReference { get; set; }
[Required]
public virtual string Description { get; set; }
public virtual int? DisplayOrder { get; set; }
}
Я получаю сообщение об ошибке «Поле описания обязательно», если я проверяю без универсального метода, но почему не получаю ту же ошибку с использованием универсального метода?
Пожалуйста, помогите мне .....