实体框架验证的单元测试

2024-05-01

我正在尝试创建一个单元测试来验证实体框架对象。我找到了这个链接:https://stackoverflow.com/a/11514648/2486661 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 值。谢谢你的帮助。


下面是一个代码示例,作为我针对每个视图模型运行的一系列测试的一部分,其中包括一个测试以确保预期的属性名称存在。

/// <summary>
/// Check expected properties exist.
/// </summary>
[Test]
public void Check_Expected_Properties_Exist()
{

// Get properties.
PropertyInfo propInfoFirstName = typeof(ViewModels.MyModel).GetProperty("FirstName");
PropertyInfo propInfoLastName = typeof(ViewModels.MyModel).GetProperty("LastName");

// Assert.
Assert.IsNotNull(propInfoFirstName);
Assert.IsNotNull(propInfoLastName);

}

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实体框架验证的单元测试 的相关文章

随机推荐