2011-03-28 156 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