假设我们将枚举类型定义为:
enum Statuses
{
Completed,
Pending,
NotStarted,
Started
}
我想让Autofixture为我创造一个价值,除了悬而未决。
所以(假设循环生成)我想获得:
已完成,未启动,已启动,已完成,未启动,...
答案 0 :(得分:19)
最简单的方法是使用AutoFixture的Generator<T>
:
var statuses = fixture
.Create<Generator<Statuses>>()
.Where(s => Statuses.Pending != s)
.Take(10);
如果您只需要一个值,但想确定它不是Statuses.Pending
,那么您可以这样做:
var status = fixture
.Create<Generator<Statuses>>()
.Where(s => Statuses.Pending != s)
.First();
还有其他方法,但这对于即席查询来说是最简单的。