从所有值的子集创建匿名枚举值

假设我们将枚举类型定义为:

enum Statuses { Completed, Pending, NotStarted, Started } 

我想让Autofixture为我创造一个价值,而不是像Pending。

所以(假设循环生成)我想获得:

已完成,未启动,已启动,已完成,未启动,…

最简单的方法是使用AutoFixture的Generator

 var statuses = fixture .Create>() .Where(s => Statuses.Pending != s) .Take(10); 

如果您只需要一个值,但想要确保它不是Statuses.Pending ,您可以这样做:

 var status = fixture .Create>() .Where(s => Statuses.Pending != s) .First(); 

还有其他方法,但这对于即席查询来说是最简单的方法。