Функции AutoProperties функции AutoFixture присваивают значения только для доступных для записи свойств.Причина, по которой ParentClass.Children
не заполняется, заключается в том, что это свойство только для чтения - AutoFixture не пытается присвоить значение, потому что знает, что это невозможно.
Однако, при условии, что у вас уже естьэкземпляр ParentClass, вы можете попросить AutoFixture заполнить коллекцию для вас:
fixture.AddManyto(parentClass.Children);
Это может быть заключено в настройку, подобную этой:
fixture.Customize<ParentClass>(c => c.Do(pc => fixture.AddManyTo(pc.Children)));
Поскольку Children
являетсяIList<ChildClass>
вам также потребуется предоставить сопоставление для этого, если вы не используете MultipleCustomization :
fixture.Register<IList<ChildClass>>(() => fixture.CreateMany<ChildClass>().ToList());
Это определенно такое поведение, которое мы рассмотрели для добавления в MultipleCustomization, но решил отложить до выпуска 2.1 , потому что это оказалось не совсем легко реализовать.