【发布时间】:2020-10-20 09:54:15
【问题描述】:
我想创建一个自定义项来限制 AutoFixture 提供的 enum 的值。到目前为止,我能找到的唯一示例使用命令式样式(例如 this)。
给定以下enum 定义:
public enum AnEnum
{
A,
B,
C
}
我想将值限制为 AnEnum.B 和 AnEnum.C。我尝试了以下代码的一些变体。
public class EnumCustomization : ICustomization
{
public virtual void Customize(IFixture fixture)
{
fixture.Customize<AnEnum>(
c => c.FromFactory(() => new Generator<AnEnum>(fixture).First(e => e != AnEnum.A)));
}
}
但是,它们都不可避免地导致AutoFixture.ObjectCreationExceptionWithPath 异常。如果没有自定义 AutoFixture 将照常创建 AnEnum 的值。因此,我认为问题在于我尝试自定义,而不是其他地方的任何循环引用。
【问题讨论】:
标签: c# enums customization autofixture