在AutoFixture中冻结枚举值

jco*_*ran 7 .net c# autofixture

我们有一个枚举:

enum Letters
{
    A,
    B,
    C,
    D,
    E        
}
Run Code Online (Sandbox Code Playgroud)

当我尝试:

var frozenLetter = fixture.Freeze(Letters.D);
Run Code Online (Sandbox Code Playgroud)

奇怪的是,frozenLetter == A.

var letter = fixture.Create<Letters>();
var anotherLetter = fixture.Create<Letters>();
Run Code Online (Sandbox Code Playgroud)

Letter和anotherLetter都等于A,所以Letters类型已被冻结,但是枚举中的第一个常量而不是指定的那个.

有没有办法将枚举冻结到我希望的常量?

Nik*_*nis 6

Freeze InjectRegister 略有不同.

使用Inject所描述的行为,如下面的测试表明:

[Fact]
public void Test()
{
    var fixture = new Fixture();

    var expected = Letters.D;
    fixture.Inject(expected);

    var letter = fixture.Create<Letters>();
    var anotherLetter = fixture.Create<Letters>();

    Assert.Equal(expected, letter);
    Assert.Equal(expected, anotherLetter);
}
Run Code Online (Sandbox Code Playgroud)

问题的示例代码的问题是参数(种子) 不用作冻结值.