Как насчет чего-то подобного;
MyObject testObject = new MyObject();
testObject.GetEager("a name");
testObject.Session.Close();
Assert.AreEqual(testObject.MySubObject.Id, 3425);
Если закрыть сеанс, а затем попытаться получить доступ к связанному объекту, если объект загружен не сразу, он выдаст исключение. Conversly, если он загружен ранее, NHibernate не будет пытаться получить доступ к базе данных и не будет выдавать исключение.