在AutoFixture中冻结枚举值

时间:2014-02-06 18:31:49

标签: c# .net autofixture

我们有一个枚举:

enum Letters
{
    A,
    B,
    C,
    D,
    E        
}

当我尝试:

var frozenLetter = fixture.Freeze(Letters.D);

奇怪的是,frozenLetter == A。

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

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

有没有办法将枚举冻结到我想要的常量?

1 个答案:

答案 0 :(得分:6)

Freeze InjectRegister are slightly different

使用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);
}

问题示例代码的问题是参数(种子) isn't used as the frozen value