Как выполнить модульное тестирование указанного свойства с помощью nhibernate - PullRequest
0 голосов
/ 28 июля 2011

Какова лучшая практика, если я хочу провести модульное тестирование сущности со ссылочным свойством?

BlogEntry ссылается на объект User по внешнему ключу. Прямо сейчас я использую 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();
            }
        }

1 Ответ

2 голосов
/ 28 июля 2011
[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();
    }
}
...