Как мне создать список классов, которые всегда имеют предопределенное значение, установленное в автоматической фиксации?

#c# #autofixture

#c# #автоматическая фиксация

Вопрос:

как мне создать коллекцию классов, которые всегда имеют определенное предопределенное значение, установленное в автоматической фиксации?

 Fixture.Register<IList<Child>>(() => Fixture.CreateMany<Child>().ToList());        
  

Допустим, дочерний класс имеет следующее:

 public class Child
{
    public int ParentId { get; set; }
    public int ChildId { get; set; }

    public string ChildName { get; set; }
    public int ChildValue { get; set; }
}
  

Как мне гарантировать, что анонимные классы всегда имеют один и тот же родительский идентификатор, в то время как все остальные свойства могут быть случайными? Я думаю, также было бы целесообразно установить childID равным 0, поскольку они будут помещены в базу данных при тестировании данных репозитория.

Ответ №1:

Вы пробовали это?

 fixture.Customize<Child>(c => c.With(x => x.ParentId, 42).With(x => x.ChildId, 0));
  

Комментарии:

1. Привет, спасибо за это. На самом деле я только что решил объединить 2 в цепочку . Без () в качестве модели EF code-first, которую я использую, в дочернем классе определены как дочерний PK, так и родительский FK. Я просто установил оба значения в 0 в 2 операторах Without() и позволил EF заполнить их после того, как они будут вставлены.