2009-11-20 2 views
2

Я все еще новичок в NHibernate, поэтому исправьте меня, если я ошибаюсь в этом.Тестирование модели данных в проекте, использующем NHibernate для обеспечения устойчивости

Когда вы используете NHibernate для создания коллекций объектов из записей базы данных, NH заботится о создании экземпляров ваших коллекций и их заполнении.

Как вы создаете экземпляры коллекций ISet при написании тестов, которые на самом деле не используют NH?

ответ

2

Вы можете создать экземпляр поля с помощью конструктора или путем создания экземпляра поля непосредственно в объявлении. Классы, сопоставленные с NHibernate, могут быть ненасытными.

public class MyEntity 
{ 
    private readonly ISet<ChildEntity> children; 

    public MyEntity() 
    { 
     children = new HashedSet<ChildEntity>(); 
    } 

    public IEnumerable<ChildEntity> Children 
    { 
     get { return children; } 
    } 

    public void AddChild(Child child) 
    { 
    children.Add(child); 
    } 
} 
+0

Вы можете инициализировать коллекцию в поле, а также: частные ISet только для чтения дети = новый HasedSet (); Таким образом, вам не нужно писать конструктор. –

+0

Почему ваши свойства и типы полей отличаются? –

+0

@ Ronnie Overby: Что ты имеешь в виду? Отображение? @Marek Tihkan: Это верно (см. Править) – Paco

0

Предполагая, что вы тестируете нечто, отличное от самого слоя данных (например, например, ваша логика домена), вы можете просто создать объекты самостоятельно и заполнить их данными тестового случая. Или вы действительно можете подделать и создать базу данных со всеми вашими тестовыми примерами.

Смежные вопросы