IEnumerable<T>
的Autofixture的默认行为是用三个项目填充它。我定义了从IEnumerable<T>
继承的通用结构。
我想更改自动定位的行为,以便对于任何MyStruct<T>
,它仅填充一项而不是3,而其他所有IEnumerable<T>
的默认行为则保持不变
我可能应该补充一点,默认构造函数采用IEnumerable<T>
并将其内部设置为只读私有字段。正是这个构造函数参数由Autofixture提供了3个值,而这正是我想要提供的3个值。
示例:
public struct MyStruct<T> : IEnumerable<T>
{
private readonly IEnumerable<T> _input;
// make Autofixture supply only one item here
// else make Autofixture supply default three items
public MyStruct(IEnumerable<T> input)
{
_input = input;
}
public IEnumerator<T> GetEnumerator()
{
return _input.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}