我正在尝试为实体框架对象的验证创建一个单元测试。我找到了这个链接: https ://stackoverflow.com/a/11514648/2486661但对我的验证永远不会得到错误的值。我在实体对象的属性中使用数据注释。为此,我创建了一个 MetaData 对象以包含注释,并像这样注释实体对象:
[MetadataType(typeof(MyEntityObjectMetaData))]
public partial class MyEntityObject
{
}
我的验证注释是这样的:
public class MyEntityObjectMetaData
{
[StringLength(8, ErrorMessage = "Invalid Length for myProperty.")]
public String myProperty { get; set; }
}
以及单元测试的代码:
[TestMethod]
public void TestMethod1()
{
MyEntityObject myEntityObject = new MyEntityObject();
myEntityObject.myProperty = "1234567890";
var context = new ValidationContext(myEntityObject, null, null);
var results = new List<ValidationResult>();
var actual = Validator.TryValidateObject(myEntityObject, context, results);
var expected = false;
Assert.AreEqual(expected, actual);
}
如果我的属性值无效,我不明白为什么对象的验证会返回值 true。谢谢你的帮助。