如何使用 AutoFixture 自动生成包含只读列表的对象?

Lar*_*ael 2 c# autofixture

我有一个概念上看起来像这样的课程:

public class Entity
{
    private readonly List<double> _values = new List<double>();

    ...

    public List<double> Values
    {
        get
        {
            return _values;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在单元测试中,我想使用 AutoFixture 提供随机实体列表:

var entities = this.fixture.CreateMany<Entity>().ToList();
Run Code Online (Sandbox Code Playgroud)

但是,正如我所期望的(希望...),没有将自动生成的值添加到 Entity 对象的 Values 属性中。我尝试将值列表更改为非只读,并向 Values 属性添加一个设置器,这解决了问题,但是没有更好的替代方法吗?

Mar*_*ann 5

AutoFixture 不会填充只读集合,但您可以要求它这样做:

var entity = fixture.Create<Entity>();
fixture.AddManyTo(entity.Values);
Run Code Online (Sandbox Code Playgroud)