4

对于将一个类与另一个类的嵌套集合进行水合,我有点困惑。我得到错误:

AutoFixture 无法从 System.Collections.Generic.IList`1[typename...] 创建实例

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

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

我还注意到它Register()被标记为已过时,但Inject()CodePlex 上没有关于该方法的文档,所以我很难理解它应该如何工作。

4

1 回答 1

4

AutoFixture 没有假设如何实例化接口的实例,但是您可以很容易地启用您寻求的行为- 例如对于整数:

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

在即将推出的 AutoFixture 2.1 中,您还可以通过单个方法调用为各种集合启用约定:

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

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

于 2011-03-28T11:30:51.387 回答