加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 实体框架验证的单元测试

发布时间:2020-12-16 06:32:45 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试为Entity Framework对象的验证创建单元测试.我找到了这个链接: https://stackoverflow.com/a/11514648/2486661但对我的验证永远不会得到错误的价值.我在实体对象的属性中使用数据注释.为此,我创建了一个MetaData对象,用于包含注释并注释实体对象,
我正在尝试为Entity Framework对象的验证创建单元测试.我找到了这个链接:
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.谢谢你的帮助.

解决方法

下面是代码示例,作为我针对每个View Model运行的一系列测试的一部分,包括确保预期属性名称存在的测试.

/// <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);

}

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读