【问题标题】:How to unit test referenced property with nhibernate如何使用 nhibernate 对引用的属性进行单元测试
【发布时间】:2011-07-28 11:53:33
【问题描述】:

如果我想对具有引用属性的实体进行单元测试,最佳做法是什么?

BlogEntry 正在通过外键引用用户对象。现在我正在使用 session.Load 来避免异常,因为外键不能包含空值。

我可以以某种方式模拟这个吗?我不希望我的单元测试包含对数据库中“真实”用户的引用。

 public class BlogEntry {
            public virtual int ID {get;set;}
            public virtual User CreatedBy {get;set;}
            public virtual string Text {get;set;}
        }

我目前正在使用以下测试方法:

        [Test]
        public void Create_blog_entry()
        {
            using (var session = sessionFactory.OpenSession())
            using (var trans = session.BeginTransaction())
            {              
                var entry = new BlogEntry(){
                 Text = "Lorem ipsum",
                 CreatedBy = session.Load<User>(1)                 
                };

                session.Save(entry);
                trans.Rollback();
            }
        }

【问题讨论】:

    标签: unit-testing nhibernate mocking nunit


    【解决方案1】:
    [Test]
    public void Create_blog_entry()
    {
        using (var session = sessionFactory.OpenSession())
        using (var trans = session.BeginTransaction())
        {
            var user = new User { Id = 1 };
            session.Save(user);
    
            var entry = new BlogEntry()
            {
                Text = "Lorem ipsum",
                CreatedBy = user
            };
    
            session.Save(entry);
            trans.Rollback();
        }
    }
    

    【讨论】:

    • 谢谢!当我知道如何时,现在感觉有点明显了.. :)
    猜你喜欢
    • 2011-01-18
    • 2017-09-11
    • 2019-12-05
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    相关资源
    最近更新 更多