#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 заполнить их после того, как они будут вставлены.