使用AutoFixture生成测试数据:解决collection 没有提到每一个T
本文关键字:每一个 collection AutoFixture 测试数据 解决 使用 | 更新日期: 2023-09-27 17:50:32
我尝试使用AutoFixture 2为具有iccollection成员的EntityFramework4类生成测试数据。
public class Parent
{
public virtual ICollection<Child1> Children1 { get; set; }
public virtual ICollection<Child2> Children2 { get; set; }
...
public virtual ICollection<Child759> Children759 { get; set; }
}
var factory = new Ploeh.AutoFixture.Fixture();
var parent = factory.CreateAnonymous<Parent>();
因为AutoFixture不能解析ICollection<Child1>
,所以我得到一个Ploeh.AutoFixture.ObjectCreationException
我发现到目前为止唯一的解决方案是注册每一个可能的'ICollection '像这样
var factory = new Fixture();
factory.Register<ICollection<Child1>>(() =>
new List<Child1>());
...
factory.Register<ICollection<Child759>>(() =>
new List<Child759>());
var parent = factory.CreateAnonymous<Parent>();
我的问题是
有人知道一种方法或约定告诉AutoFixture总是使用List<T>
如果ICollection<T>
是必需的吗?
AutoFixture 2.1将为各种多样性模型提供约定。计划是在去哥本哈根之前完成2.1个。