我正在使用DataAnnotations中的RegularExpressionAttribute进行验证,并想测试我的正则表达式。有没有一种方法可以在单元测试中直接调用属性?
我希望能够执行以下操作:
public class Person
{
[RegularExpression(@"^[0-9]{3}-[0-9]{3}-[0-9]{4}$")]
public string PhoneNumber { get; set; }
}
然后在单元测试中:
[TestMethod]
public void PhoneNumberIsValid
{
var dude = new Person();
dude.PhoneNumber = "555-867-5309";
Assert.IsTrue(dude.IsValid);
}
甚至
Assert.IsTrue(dude.PhoneNumber.IsValid);
最佳答案
我最终使用了DataAnnotations命名空间中的静态Validator类。我的测试现在看起来像这样:
[TestMethod]
public void PhoneNumberIsValid()
{
var dude = new Person();
dude.PhoneNumber = "666-978-6410";
var result = Validator.TryValidateObject(dude, new ValidationContext(dude, null, null), null, true);
Assert.IsTrue(result);
}