c# – 在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>();

字母和另一个字母都等于A,因此字母类型已被冻结,但是枚举中的第一个常量而不是指定的常量.

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

解决方法

冻结注入并注册 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.

相关文章

原文地址:http://msdn.microsoft.com/en-us/magazine/cc163...
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采...
最近因为比较忙,好久没有写博客了,这篇主要给大家分享一下...
在多核CPU在今天和不久的将来,计算机将拥有更多的内核,Mic...
c语言输入成绩怎么判断等级
字符型数据在内存中的存储形式是什么