我正在使用AutoFixture为涉及父对象和复杂子对象的结构生成数据,就像这样:
有没有一种方法可以自动将生成的
public class Parent
{
public int Id { get; set; }
public string Name { get; set; }
public Child[] Children { get; set; }
}
public class Child
{
public string Name { get; set; }
public int ParentId { get; set; }
}
有没有一种方法可以自动将生成的
Child
对象的属性ParentId
设置为分配给父对象的id?目前我的解决方案看起来像这样,不太美观:var parent = fixture.Build<Parent>().Without(p => p.Children).CreateAnonymous();
parent.Children = fixture.CreateMany<Child>(10).ToArray();
foreach (var i in parent.Children)
{
i.ParentId = parent.Id;
}
感觉好像有一种更好的方法可以解决这个问题,但是我可能还没有想到?我尝试了创建一个自定义的ISpecimenBuilder
,但是也没有成功解决它。