小编Nik*_*erg的帖子

在AutoFixture中创建复杂子项时使用父属性的值

我正在使用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; }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法自动将ParentId生成的Child对象的属性设置为分配给父级的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;
}
Run Code Online (Sandbox Code Playgroud)

感觉就像有一种更好的方法来做到这一点,我失踪了?我考虑创建一个自定义,ISpecimenBuilder但也没有设法解决它.

c# autofixture

8
推荐指数
1
解决办法
1392
查看次数

标签 统计

autofixture ×1

c# ×1