有没有可能在
AutoFixture
中创建一个具有唯一属性的集合?例如,我想创建一个包含以下内容的集合:public class Foo {
public int Id {get; set;}
public string Name {get;set;}
}
带有唯一的Id
。它大致看起来像这样:
var fixture = new Fixture();
fixture
.Build<Foo>()
.WithUnique((foo) => foo.Id)
.CreateMany(20);
我知道可以通过自定义来实现这一点,但我认为这是相当普遍的场景,AutoFixture
可能已经准备好了相关内容吗?
byte
类型的集合中超过了255个元素,否则它始终是唯一的? - OlegIRandomNumericSequencegenerator
,它可以创建一个从1开始的随机、唯一数字序列(仅跟踪已返回范围内的随机数列表)。在范围内的所有数字都被返回后,历史记录将被清除,并重新开始生成。 - Sergey Berezovskiybyte
范围之后,RandomNumericSequenceGenerator
会切换到更大的范围,不包括先前的范围。因此,如果您的属性足够宽(例如short
或int
),我会说数字始终是唯一的。 - Alex Povar