从所有值的子集创建匿名枚举值
假设我们将枚举类型定义为:
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();
还有其他方法,但这对于即席查询来说是最简单的方法。