c# – 在AutoFixture中冻结枚举值

前端之家收集整理的这篇文章主要介绍了c# – 在AutoFixture中冻结枚举值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个枚举:
enum Letters
{
    A,B,C,D,E        
}
@H_404_4@当我尝试:

var frozenLetter = fixture.Freeze(Letters.D);
@H_404_4@奇怪的是,frozenLetter == A.

var letter = fixture.Create<Letters>();
var anotherLetter = fixture.Create<Letters>();
@H_404_4@字母和另一个字母都等于A,因此字母类型已被冻结,但是枚举中的第一个常量而不是指定的常量.

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

解决方法

冻结注入并注册 are slightly different. @H_404_4@使用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);
}
@H_404_4@问题的示例代码的问题是参数(种子)isn’t used as the frozen value.

猜你在找的C#相关文章