我们有一个枚举:
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类型已被冻结,但是枚举中的第一个常量而不是指定的那个。
有没有办法将枚举冻结到我想要的常量?
答案 0 :(得分:6)
Freeze
Inject
和Register
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。