Unit testing 如何使用nhibernate对引用属性进行单元测试

Unit testing 如何使用nhibernate对引用属性进行单元测试,unit-testing,nhibernate,mocking,nunit,Unit Testing,Nhibernate,Mocking,Nunit,如果我想对具有引用属性的实体进行单元测试,那么最佳实践是什么 BlogEntry通过外键引用用户对象。现在我使用session.Load来避免异常,因为外键不能包含null 我能取而代之地嘲笑这个吗?我不希望我的单元测试包含对数据库中“真实”用户的引用 public class BlogEntry { public virtual int ID {get;set;} public virtual User CreatedBy {get;set;}

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

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

我能取而代之地嘲笑这个吗?我不希望我的单元测试包含对数据库中“真实”用户的引用

 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();
            }
        }
[测试]
public void Create_blog_entry()
{
使用(var session=sessionFactory.OpenSession())
使用(var trans=session.BeginTransaction())
{              
var entry=new BlogEntry(){
Text=“Lorem ipsum”,
CreatedBy=session.Load(1)
};
session.Save(条目);
trans.Rollback();
}
}

谢谢!现在当我知道怎么做的时候,感觉有点明显……)
[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();
    }
}