2011-03-28 155 views
4

我有点困惑,因为水合一个类与另一个类的嵌套集合。 我得到的错误:具有嵌套集合的类 - 如何填充嵌套类?

AutoFixture was unable to create an instance from System.Collections.Generic.IList`1[typename...]

我试着使用Fixture.Register()注册类型用于填充内部类。 我只能做一个样品,显示

  1. 另一个类的主要类
  2. 嵌套集合(的IList/IEnumerable的)。

我也注意到,Register()被标记为已过时,尚未有在CodePlex上的Inject()法应如何工作没有文件,所以我难倒。

回答

4

AutoFixture对如何实例化接口实例不作任何假设,但您可以pretty easily enable the behavior you seek - 例如对于整数:

fixture.Register(() => fixture.CreateMany<int>()); 

在即将到来的AutoFixture 2.1也可以只enable conventions for various collections用一个方法调用:

var fixture = new Fixture().Customize(new MultipleCustomization()); 

关于注册方法的折旧,请注意,这只是一个过载注册方法已被标记为过时。注入方法是直接替换 - 它具有相同的签名和用法,只是一个不同的名称。所有其他寄存器重载都不被弃用,应该用作“记录”。

+0

非常感谢。期待下一个版本! – jaffa 2011-03-28 12:15:13