具有嵌套集合的类 - 如何填充嵌套类?

时间:2011-03-28 11:11:08

标签: autofixture

我有点困惑,用另一个类的嵌套集合来保护一个类。 我收到错误:

  

AutoFixture无法从System.Collections.Generic.IList`1 [typename ...]

创建实例

我尝试使用Fixture.Register()注册填充内部类的类型。 我只想做一个显示

的样本
  1. 主要班级
  2. 另一个类的嵌套集合(IList / IEnumerable)。
  3. 我还注意到Register()被标记为已过时,但CodePlex上没有关于Inject()方法的文档,所以我很难知道它应该如何工作。

1 个答案:

答案 0 :(得分: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());

关于Register方法的弃用,请注意,它只是Register方法的一个重载,标记为过时。 Inject方法是直接替换 - 它具有相同的签名和用法,只是一个不同的名称。所有其他寄存器重载都不会被弃用,应该用作“文档化”。